java – 如何使用硬编码值声明自定义数据类型的静态数组?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何使用硬编码值声明自定义数据类型的静态数组?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2034字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何使用硬编码值声明自定义数据类型的静态数组?](/upload/InfoBanner/zyjiaocheng/748/cf5c6c2fd5324cfb9adeb1cc23aaf529.jpg)
目标:
我想为不经常更改的数据实现硬编码查找表,但是当它确实发生更改时,我希望能够快速更新程序并重建.
计划:
我的计划是定义一个自定义数据类型…
private class ScalingData
{
public float mAmount;
public String mPurpose;
public int mPriority;
ScalingData(float fAmount, String strPurpose, int iPriority)
{
mAmount = fAmount;
mPurpose = strPurpose;
mPriority = iPriority;
}
}
然后,在主类中,像这样对数组进行硬编码……
public static ScalingData[] ScalingDataArray =
{
{1.01f, "Data point 1", 1},
{1.55f, "Data point 2", 2}
};
但是,这不构建.我一直看到消息“类型不匹配:无法从float []转换为ScalingData”.
我怎样才能实现目标?
UPDATE
到目前为止,我已尝试实施这些建议,但仍然遇到错误……
代码如下:
public class CustomConverter
{
//Lookup Table
private static ScalingData[] ScalingDataArray =
{
new ScalingData(1.01f, "Data point 1", 1),
new ScalingData(1.55f, "Data point 2", 2)
};
//Constructor
CustomConverter()
{
//does stuff
}
//Custom Data type
private class ScalingData
{
public float mAmount;
public String mPurpose;
public int mPriority;
ScalingData(float fAmount, String strPurpose, int iPriority)
{
mAmount = fAmount;
mPurpose = strPurpose;
mPriority = iPriority;
}
}
}
并且硬编码数组的错误是
No enclosing instance of type CustomConverter is accessible.
Must qualify the allocation with an enclosing instance of type CustomConverter
(e.g. x.new A() where x is an instance of CustomConverter).
编辑…完整的解决方案,如下面的答案
public class CustomConverter
{
//Lookup Table
private static ScalingData[] ScalingDataArray =
{
new ScalingData(1.01f, "Data point 1", 1),
new ScalingData(1.55f, "Data point 2", 2)
};
//Constructor
CustomConverter()
{
//does stuff
}
//Custom Data type
private static class ScalingData
{
public float mAmount;
public String mPurpose;
public int mPriority;
ScalingData(float fAmount, String strPurpose, int iPriority)
{
mAmount = fAmount;
mPurpose = strPurpose;
mPriority = iPriority;
}
}
}
解决方法:
你不能用Java做到这一点.你需要像这样使用构造函数:
public static ScalingData[] ScalingDataArray =
{
new ScalingData(1.01f, "Data point 1", 1),
new ScalingData(1.55f, "Data point 2", 2)
};
内容总结
以上是互联网集市为您收集整理的java – 如何使用硬编码值声明自定义数据类型的静态数组?全部内容,希望文章能够帮你解决java – 如何使用硬编码值声明自定义数据类型的静态数组?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。