![](/img/trans.png)
[英]How do I return an int data from a static void method to main method?
[英]How do I return from a void method
我在代碼中的注釋有一個問題,如下所示:我的代碼試圖從我的getFullCollection()
方法中提取 7 張隨機卡片,但是,它不允許我返回任何值,因為它聲明 void方法不能返回值。 編碼:
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 方法不能返回值
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 返回類型並將其替換為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() 方法創建一種特殊形式的套牌?
您能否提供一個簡單的描述第一個代碼片段應該做什么,這樣我可以更好地理解?
如果你這樣做,你就不能使用回報
我假設這個 for 循環是用來確定你的卡應該是什么稀有度,所以如果你想以這種方式使用你的回報,你可能不得不將它提供給另一種方法
正如@MartinScheuchenpflug 指出的那樣,我不能在這里使用return 語句。 以下是有關如何圍繞該 return 語句跳舞的代碼:
if (number < 10000001) {
Random cards = new Random();
int i1 = cards.nextInt(7);
if(i1 == 0) {
pack_cards.add(packag.Deck.Shuriken);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.