我如何从 void 方法 return
How do I return from a void method
我在代码中的注释有问题,如下:
我的代码试图从我的 getFullCollection()
方法中随机抽取 7 张卡片,
但是,它不允许我 return 任何值,因为它声明 void 方法不能 return 值。代码:
public class Packs {
Deck classicSet = new Deck() {
public void getFullCollection() {
classicSet.getFullCollection();
Random PO = new Random();
int number;
for(int counter = 1; counter<=7; counter++) {
number = 1+PO.nextInt(10000000);
if(number < 41650) {
return packag.Cards.Rarity.Common; //the problem
}
它说:
Void methods cannot return a value
public void getFullCollection() throws IOException{
Cards Shuriken = new Attacks(3, 2, packag.Cards.Effects.Return, packag.Cards.Class.Ninja, packag.Cards.Rarity.Common, ImageIO.read(new File("Shuriken.png")));
System.out.println(Shuriken.toString());
this.cards.add(Shuriken);
我尝试删除 getFullCollection()
class 上的 void return 类型并将其替换为 public int getFullCollection()
,但它不起作用
class Attacks extends Cards {
private int damage;
private int Mana;
private final Effects effects;
private BufferedImage card;
private final Rarity rarity;
private final Class class1;
Attacks(int damage, int Mana, final Effects effects, final Class class1, final Rarity rarity, BufferedImage card) {
super(Mana, effects, rarity, class1, card);
this.damage = damage;
this.rarity = rarity;
this.class1 = class1;
this.effects = effects;
this.Mana = Mana;
this.card = card;
}
这个方法就是我在getFullCollection
方法中做卡片的方法。
您是否正在通过覆盖 getFullCollection() 方法来创建特殊形式的牌组?
您能否提供第一个代码片段应该做什么的简单描述,以便我更好地理解?
如果你这样做,你就不能使用 return
我假设这个 for 循环是用来确定你的卡片应该是什么稀有度的,所以如果你想以这种方式使用你的 return,你可能不得不将其提供给另一种方法
作为,我不能在这里使用return语句。下面是关于如何围绕 return 语句跳舞的代码:
if (number < 10000001) {
Random cards = new Random();
int i1 = cards.nextInt(7);
if(i1 == 0) {
pack_cards.add(packag.Deck.Shuriken);
我在代码中的注释有问题,如下:
我的代码试图从我的 getFullCollection()
方法中随机抽取 7 张卡片,
但是,它不允许我 return 任何值,因为它声明 void 方法不能 return 值。代码:
public class Packs {
Deck classicSet = new Deck() {
public void getFullCollection() {
classicSet.getFullCollection();
Random PO = new Random();
int number;
for(int counter = 1; counter<=7; counter++) {
number = 1+PO.nextInt(10000000);
if(number < 41650) {
return packag.Cards.Rarity.Common; //the problem
}
它说:
Void methods cannot return a value
public void getFullCollection() throws IOException{
Cards Shuriken = new Attacks(3, 2, packag.Cards.Effects.Return, packag.Cards.Class.Ninja, packag.Cards.Rarity.Common, ImageIO.read(new File("Shuriken.png")));
System.out.println(Shuriken.toString());
this.cards.add(Shuriken);
我尝试删除 getFullCollection()
class 上的 void return 类型并将其替换为 public int getFullCollection()
,但它不起作用
class Attacks extends Cards {
private int damage;
private int Mana;
private final Effects effects;
private BufferedImage card;
private final Rarity rarity;
private final Class class1;
Attacks(int damage, int Mana, final Effects effects, final Class class1, final Rarity rarity, BufferedImage card) {
super(Mana, effects, rarity, class1, card);
this.damage = damage;
this.rarity = rarity;
this.class1 = class1;
this.effects = effects;
this.Mana = Mana;
this.card = card;
}
这个方法就是我在getFullCollection
方法中做卡片的方法。
您是否正在通过覆盖 getFullCollection() 方法来创建特殊形式的牌组?
您能否提供第一个代码片段应该做什么的简单描述,以便我更好地理解?
如果你这样做,你就不能使用 return
我假设这个 for 循环是用来确定你的卡片应该是什么稀有度的,所以如果你想以这种方式使用你的 return,你可能不得不将其提供给另一种方法
作为
if (number < 10000001) {
Random cards = new Random();
int i1 = cards.nextInt(7);
if(i1 == 0) {
pack_cards.add(packag.Deck.Shuriken);