1

私はバイオインフォマティクス用の Java ツールであるGATKを使用しています。内部で org.reflections.Reflections を使用して、いくつかのプラグインをロードします。

私のプラグインはコンパイルされましたが、クラスパスにあり、同様のツールが問題なく動作していたときに GATK によって検出/ロードされませんでした。コードの一部を削除することで、問題を次の行に絞り込みました。これが問題の原因でした ( filterを参照)。

(...)
ctx.getAlleles().stream().filter(T->!(T.isSymbolic() || T.isNoCall())).mapToInt(new ToIntFunction<Allele>() {
    public int applyAsInt(Allele value) {return value.length();};
    });
(...)

上記の行を次のように変更すると、プラグインがロードされます。

(...)
ctx.getAlleles().stream().mapToInt(new ToIntFunction<Allele>() {
        public int applyAsInt(Allele value) {return value.length();};
    });
(...)

行が次の場合にもロードされます。

final Predicate<Allele> afilter = new Predicate<Allele>() {
    @Override
    public boolean test(Allele a) {
        return !(a.isNoCall() || a.isSymbolic());
    }
};
ctx.getAlleles().stream().filter(afilter).mapToInt(new ToIntFunction<Allele>() {
        public int applyAsInt(Allele value) {return value.length();};
    });

なぜ ?

4

0 に答える 0