簡體   English   中英

如何從 void 方法返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM