小编ani*_*der的帖子

"设置"特定枚举类型但具有泛型

假设我有一个抽象类

public abstract class Trainer<T extends Animal>{}
Run Code Online (Sandbox Code Playgroud)

我有特定的培训师,如:

public DogTrainer extends Trainer<Dog>{}
public HorseTrainer extends Trainer<Horse>{}
Run Code Online (Sandbox Code Playgroud)

这些"训练师"中的每一个都有一套固定的技巧,他们可以训练动物去做,我想使用Enums.所以我有一个界面:

public interface TrainingActions<T extends Animal>{}
Run Code Online (Sandbox Code Playgroud)

在每个培训师中,我都有一个实现此界面的Enum.所以:

public DogTrainer extends Trainer<Dog>{
  public enum Trainables implements TrainingActions<Dog>{
    BARK, BITE, ROLLOVER, FETCH;
  }
}

public HorseTrainer extends Trainer<Horse>{
  public enum Trainables implements TrainingActions<Horse>{
    JUMP, TROT, REARUP;
  }
}
Run Code Online (Sandbox Code Playgroud)

现在在每个Trainer类中,我想要一个方法说'trainingComplete',它将一个Enums作为输入并将其保存到一个集合中.所以

public DogTrainer extends Trainer<Dog>{
  public enum Trainables implements TrainingActions<Dog>{
    BARK, BITE, ROLLOVER, FETCH;
  }
  public Set<Trainables> completed = new HashSet<Trainables>();
  public void trainingComplete(Trainables t){completed.add(t);}
}
Run Code Online (Sandbox Code Playgroud)

但是,我不想在每个培训师中定义每个特定培训师中的"已完成"集和"培训完成"方法,而是希望父母"培训师"课程中的某些内容可以强制执行Enum类型...所以它是Enums和泛型的奇怪组合.

这可能吗?

java generics enums

34
推荐指数
1
解决办法
616
查看次数

布尔变量从javascript函数返回为字符串

为什么当我返回时,我认为是来自javascript函数的布尔变量,它在调用函数中被检测为字符串,但如果我返回一个布尔文字,则调用函数将其检测为布尔值?

所以,例如:

$( document ).ready(function(){
    $('#result').text(typeof validate());
    $('#result2').text(typeof validate2());
});

function validate(){
    status = true;
    status = false;
    return status;
}
    
function validate2(){
    return true;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Hello</p>
<div id="result"></div>
<div id="result2"></div>
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
1
解决办法
168
查看次数

标签 统计

enums ×1

generics ×1

java ×1

javascript ×1