首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表达式的类型必须是数组类型,但它已解析为"Temperature“-JAVA

表达式的类型必须是数组类型,但它已解析为"Temperature“-JAVA
EN

Stack Overflow用户
提问于 2012-05-10 15:36:50
回答 5查看 3.8K关注 0票数 1

大家好,

所以我创建了一个类Temperature,它有一个构造函数来设置温度。温度是由冷、热两个数字组成的数组列表。

代码语言:javascript
复制
    public int hotness;
public int coldness;
public int[] temperature;
public int maxTemperature = 10000;


//Constructor Temperature
public Temperature(int hotness, int coldness) {
    /**
     * A constructor for the Array Temperature
     */
    maxTemperature = getMaxTemperature();
        if(hotness <= maxTemperature && coldness <= maxTemperature)
        temperature[0] = coldness;
        temperature[1] = hotness;
        }

现在我想进入另一个类,用那个物体温度来做一些计算。这是它的代码。

代码语言:javascript
复制
    //Variabels

public int volatility;
private static Temperature temperature;
private static int intrensicExplosivity;

    public static int standardVolatility(){
    if(temperature[0] == 0){
        int standardVolatility = 100 * intrensicExplosivity * (0.10 * temperature[1]);
    }

所以现在我得到了错误:表达式的类型必须是数组类型,但它被解析为"Temperature“

有什么解决方案吗?

我对Java非常陌生,所以可能只是一些synthax错误,但我就是找不到它。

提前谢谢。大卫

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-05-10 15:39:34

而不是

代码语言:javascript
复制
public static int standardVolatility() {
    if(temperature[0] == 0) {

试一试

代码语言:javascript
复制
public static int standardVolatility() {
    if(tepmerature.temperature[0] == 0) {
       ^^^^^^^^^^^^

请注意,第二个代码片段中的temperatureTemperature类型,该类型本身有一个名为temperature的整型数组。要访问Temperature对象的temperature-array,您必须执行temperature.temperature

正如@Marko Topolnik指出的那样,你可能也想要改变

代码语言:javascript
复制
public int[] temperature;

代码语言:javascript
复制
public int[] temperature = new int[2];

以便为两个温度值腾出空间。

票数 1
EN

Stack Overflow用户

发布于 2012-05-10 15:44:38

首先在温度类中创建getter和setter方法,然后调用temperature.getTempertature()并在第二个类上使用它。

票数 1
EN

Stack Overflow用户

发布于 2012-05-10 15:39:52

tempeture的类型为Tempeture,该类型不是数组。您需要的是对象实例(也称为tempature)中的数组成员temperature

无论如何,更改行:

代码语言:javascript
复制
if(temperature[0] == 0) 
.
.

通过以下方式:

代码语言:javascript
复制
if(temperature.tempature[0] == 0)
.
.

我建议您使用getter和setter,也可以使用name,这不会让您感到困惑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10529399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档