我正在开发一个Deck项目,我有一个带有两个枚举的Card类:
$(window).load(function(){
var tableRow = document.querySelectorAll('.dataRow');
var links = $('.dataCell:nth-child(4) .zipUrl');
if (tableRow.length === 0) return;
var index = 0;
function click() {
if (index < tableRow.length) {
//comment out line 14 to see console.log working normally
$(links[index++]).click();
console.log('Clicked on... ' + links[index]);
click();
}
}
click();
}
);//]]>
好吧,对于Card类,问题是我必须从另一个类调用它们,但NetBeans不允许我这样做:
package exercise4;
public class Card
{
public enum Suit
{
HEARTS,SPADES,CLUBS,DIAMONDS
}
public enum CardValue
{
ACE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING
}
private Suit s;
private CardValue cv;
other methods...
}
并且NetBeans强迫我这样做:
Card testcard=new Card(CardValue.ACE,Suit.HEARTS);
但是在我老师提供的测试文件中,他们以这种方式调用枚举,并且必须有效:
Card testcard=new Card(Card.CardValue.ACE,Card.Suit.HEARTS);
我做得不好? :/
由于
答案 0 :(得分:0)
您可以直接使用CardValue
和Suit
,只需导入它们,就像任何其他类/枚举/接口一样。
package stackoverflow;
import exercise4.Card;
import exercise4.Card.CardValue;
import exercise4.Card.Suit;
public class Main {
public static void main(String[] args) {
Card testcard = new Card(CardValue.ACE, Suit.HEARTS);
// more code
}
}
当然,您也可以将CardValue
和Suit
顶级枚举转移到自己的源文件:CardValue.java
和Suit.java
。
正如其他人所指出的那样,你也可以静态导入枚举值:
package stackoverflow;
import exercise4.Card;
import static exercise4.Card.CardValue.*;
import static exercise4.Card.Suit.*;
public class Main {
public static void main(String[] args) {
Card testcard = new Card(ACE, HEARTS);
// more code
}
}