我如何从 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);