Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类型不匹配:无法从字符串转换为_Java - Fatal编程技术网

Java 类型不匹配:无法从字符串转换为

Java 类型不匹配:无法从字符串转换为,java,Java,我遇到了如下错误:类型不匹配:无法从字符串转换为produktas。。。我到处寻找解决方案,但对我来说似乎太难了。我会感谢你的帮助 我的职能是: public static produktas[] surasti(produktas G[], int n) { try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); produktas A[] = new

我遇到了如下错误:
类型不匹配:无法从字符串转换为produktas
。。。我到处寻找解决方案,但对我来说似乎太难了。我会感谢你的帮助

我的职能是:

public static produktas[] surasti(produktas G[], int n) {
    try {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        produktas A[] = new produktas[5];
        for (int j = 0; j < 5; j++) {
            System.out.println("Kokio produkto ieskosime?");
            String found = in.readLine();
            for (int i = 1; i < n; i++) {
                if (found.equals(G[i].gautiPav())) { 
                    A[j] = G[i].gautiPav(); // error line
                }
            }
        } 
        return A; 
    } catch(IOException ie) {
        ie.printStackTrace();
    }
    return null;
}
A是一个“produktas”数组。您正在尝试向其中分配一个字符串,即gautiPav()方法返回的字符串

你确定你不是故意写这个的吗

A[j] = G[i]; // error line
如果您看到这样的字符串:
name。produktas@60e53b93
然后您应该重写
Object.toString()
方法以返回更易于阅读的字符串,典型示例可能如下所示。如果您使用的是任何现代IDE,如Eclipse,则有一个帮助程序,对于Eclipse:Source,生成toString()

A是一个“produktas”数组。您正在尝试向其中分配一个字符串,即gautiPav()方法返回的字符串

你确定你不是故意写这个的吗

A[j] = G[i]; // error line
如果您看到这样的字符串:
name。produktas@60e53b93
然后您应该重写
Object.toString()
方法以返回更易于阅读的字符串,典型示例可能如下所示。如果您使用的是任何现代IDE,如Eclipse,则有一个帮助程序,对于Eclipse:Source,生成toString()


根据聊天中的讨论,您似乎想将A作为produktas返回,但要编写/查看引用A的
guatiPav()
方法。如果希望A的表示方式不同于一系列“随机”输出,则需要重写
toString()


或者你想在引用A元素的任何地方直接调用
gautiPav()
。我强烈推荐后一种方法,因为对象的
toString()
应该是对对象的描述,而不是它所包含的单个参数。

在聊天中讨论之后,似乎您想将A作为produktas返回,但在引用A的地方编写/查看
guatiPav()
方法。如果希望A以不同于一系列“随机”输出的方式表示,您需要重写
toString()


或者您希望在引用A元素的任何位置直接调用
gautiPav()
。我强烈建议使用后一种方法,因为对象的
toString()
应该是对对象的描述,而不是它包含的单个参数。

此行
if(find.equals(G[I].gautiPav())
正在尝试将
字符串
产品进行比较,这不是问题。它将返回
false
,但这是一个有效的比较。
a[j]=G[i].gautiPav()调用gautiPav,它返回的字符串不是produkta
a[j]=G[i]。gautiPav();//错误行
那行没问题,就这一行。当我删除它并尝试
A[j]=G[I]
时,一切都正常okay@Nordiii是的,我知道,但是怎么解决呢?找不到解决方案。如果(found.equals(G[i].gautiPav())
试图将
字符串
produktas
@matiaselgart进行比较,则这不是问题。它将返回
false
,但这是一个有效的比较。
a[j]=G[i].gautiPav()调用gautiPav,它返回的字符串不是produkta
a[j]=G[i]。gautiPav();//错误行
那行没问题,就这一行。当我删除它并尝试
A[j]=G[I]
时,一切都正常okay@Nordiii是的,我知道,但是怎么解决呢?找不到解决方案。执行此操作时,我会收到随机字母,但不会收到
pavadinimas
。输出类似于
name。produktas@60e53b93
@labasRyta然后您需要覆盖
produktas
中的
toString
——可能会返回
pavadinimas
当我这样做时,我会得到随机字母,但不是
pavadinimas
。输出类似于
name。produktas@60e53b93
@labasRyta然后您需要覆盖
produktas
中的
toString
——可能返回
pavadinimas
@Override
public String toString() {
    return String.format("[produktas: %s]", pavadinimas);
}
class produktas {
    private String pavadinimas;
    private String salis;
    private Double svoris;
    private Double kaina;

    produktas() {}
    produktas(String pav, String salis, double svoris, double kaina) {
        pavadinimas = pav;
        this.salis = salis;
        this.svoris = svoris;
        this.kaina = kaina;
    }

    public String gautiPav() {
        return pavadinimas;
    }

    @Override
    public String toString() {
        return guatiPav(); // or "return pavadinimas;"
    }
}