java - 不兼容的类型。分数无法转换为字符串

标签 java

我正在努力完成大学作业。我已经完成了大部分代码,据我所知,它应该可以工作。但是,我不断收到错误消息。

我不太确定该尝试什么,因为我认为这正是它的工作原理。我重新回顾了之前的讲座,完成了主题阅读,并联系了我的同学。到目前为止,我还没有得到解决方案。

private static Fraction fraction1;
private static Fraction fraction2;



public static void main(String[] args)
{

    String fraction1 = args[0];

    String[] splittedFraction1 = fraction1.split("/");

    String fraction2 = args[1];

    String[] splittedFraction2 = fraction2.split("/");



    int numerator1 = Integer.parseInt(splittedFraction1[0]);

    int denominator1 = Integer.parseInt(splittedFraction1[1]);

    int numerator2 = Integer.parseInt(splittedFraction2[0]);

    int denominator2 = Integer.parseInt(splittedFraction2[1]);


    fraction1 = new Fraction ( numerator1,  denominator1);

    fraction2 = new Fraction ( numerator2,  denominator2);
<小时/>

指的是

<小时/>
class Fraction{
public int numerator;
public int denominator;

public Fraction( int n, int d )
{
    this.numerator = n;

    this.denominator = d;
}

public Fraction()
{
    this.numerator = 1;

    this.denominator = 2;
}

}

根据我的理解,我从命令行获取了字符串输入。

然后,我分割了字符串来标识我想要设置为整数的输入。

然后我使用了 int numerator1 = Integer.parseInt(fraction1[0]);

将字符串转换为整数。

然后,根据我的理解,我获取了我创建的整数,并将它们放入我的对象创建的参数中

fraction1 = new Fraction(numerator1, denominator1);

fraction2 = new Fraction(numerator2, denominator2);

这样我就可以将它们传递给我的 Fraction 类,然后将它们分配给类实例变量。

这一切并没有正常工作,而是出现以下错误:

ArithmeticWithFractions.java:42: error: incompatible types: Fraction cannot be converted to String
                fraction1 = new Fraction ( numerator1,  denominator1);
                            ^
ArithmeticWithFractions.java:44: error: incompatible types: Fraction cannot be converted to String
                fraction2 = new Fraction ( numerator2,  denominator2);
                            ^
ArithmeticWithFractions.java:47: error: incompatible types: String cannot be converted to Fraction
                Calculator calculator = new Calculator(fraction1, fraction2);

tarnation 发生了什么?

我以为我用 parseInt 将字符串转换为整数。

啊!

最佳答案

如果您看到代码,则表明您已经声明了 fraction1fraction2 两次。一个是字符串局部变量,另一个是 Fraction 类型的类级别变量。

默认情况下,java 使用最低范围的变量。因此,在您的情况下,局部变量在图片中,因此您会收到不兼容的错误。

如果您想使用类级别变量,则需要像下面这样使用它。

ArithmeticWithFractions.fraction1 = new Fraction ( numerator1,  denominator1);
ArithmeticWithFractions.fraction2 = new Fraction ( numerator2,  denominator2);

在将其传递给 Calculator 构造函数时,您需要执行相同的操作。

Calculator calculator = new Calculator(ArithmeticWithFractions.fraction1, ArithmeticWithFractions.fraction2);

关于java - 不兼容的类型。分数无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55822884/

相关文章:

java - 来自 GWT 的 Spring

java - 使用 Java(PlayFramework-2.6 或 Plain Java)将数据 URI 上传到服务器

java - 我有两个数组,我想将两个数组添加到一个数组中。但是如何..?

java - android:如何增加购物车中商品的数量

java - 找到下一个最小的键(需要性能建议)

java - eclipse 编译器编译 javac 不会编译的代码 - 代码看起来是合法的

java - 如何让 Eclipse 在打开搜索结果时打开整个文件?

java - fasterxml jackson objectmapper 转换字符串

java - 从 Firebase 实时数据库获取当前用户信息

java - Jtable 中具有一个键和多个值的 hashmap?