我的编译器说我有一个不兼容的类型。 Java的

时间:2013-06-28 00:22:41

标签: java

它表示数字125,100是行中不兼容的类型:_die1 = newDie(125,100);

我不明白它,因为在NewDie方法中它需要int 2 int,所以它应该工作正常......?!基本上这个程序创建骰子卷,我试图让它显示滚动#2

 import java.awt.*;  
// The panel which holds the two dice
import javax.swing.*;
public class DicePanel extends JPanel
{
// instance variables 
private Die _die1, _die2;
private int _roll;


/**
 * Constructor for objects of class DicePanel
 */
public DicePanel()
{
    // initialise instance variables
    super();
    setBackground(Color.GRAY);



    _die1 = new Die(125,100);
    _die2 = new Die(250,100);



    roll();
}
// display the dice in the panel
public void paintComponent(Graphics pen)
{
    super.paintComponent(pen);
    Graphics2D aBetterPen = (Graphics2D)pen;
    _die1.paint(aBetterPen);
    _die2.paint(aBetterPen);



}
// roll both dice and display them
public void roll()
{


   // _die1 = new Two(125,100);
   // _die2 = new Three(250,100);

    _die1 = newDie(125,100); 
   // _die2 = DicePanel.newDie(250,100);
   //repaint();
}
// retrieve the value of each die
public int getDie1()
{
    return _die1.getValue();
}
public int getDie2()
{
    return _die2.getValue();
}

// factory method for a die
public void newDie(int x, int y){

    //_roll = randomNumber(1,6);

    _die1 = new Two(x,y);
    // _die2 = new Three(x,y);

}
// random number generator to return and integer between two integers, inclusive.
public static int randomNumber(int low, int high){
    return low + (int)(Math.random()*(high-low+1));
}

}

2 个答案:

答案 0 :(得分:3)

newDie返回void,这显然与_die的Die类型不兼容。

答案 1 :(得分:1)

没有说明newDie(125,100)的行。然而,有一条线说new Die(125,100) ......这意味着一些非常不同的东西。它是构造函数调用而不是方法调用。

所以:

  • 您正在调用newDie方法,因为newDie返回void

  • 而抱怨
  • 您正在调用Die构造函数为new Die(125, 100),并且正式和实际参数类型不匹配。

鉴于错误消息是抱怨125100,我认为第二种解释是更有可能的。但是你没有在你的问题中包含Die构造函数声明,所以我无法确定。


我还应该添加_die1_die2_roll根据大多数 Java编码样式违反编码风格... ...特别是Oracle推荐的编码风格。你有充分的理由不同(和个人偏好不是一个好理由)然后你应该编写你的Java代码以符合主流风格。

你的代码缩进也与我见过的任何编码风格不一致......也应该修复。

如果您纯粹为了自己的利益编写代码,而其他任何人都不必阅读它,那么您的代码风格就是您自己的事业。但是如果你想要任何人(例如你的讲师,你的同事,StackExchange读者)阅读它,那么风格重要