小编Blu*_*een的帖子

Snakemake:由于错误的通配符扩展而导致“缺少输入文件”

我是Snakemake的新手,我想编写一个非常简单的Snakefile,其规则将每个输入文件分别处理为一个输出文件,但是由于某种原因,我的通配符无法正确解释。

我在Ubuntu 18.04中使用输入文件“ test / test1.txt”,“ test / test2.txt”和Snakefile设置了一个最小的,可重现的示例环境。(snakemake版本5.5.4)

Snakefile:

ins = glob_wildcards("test/{f}.txt")

rule all:
  input: expand("out/{f}.txt", f=ins)

rule test:
  input: "test/{f}.txt"
  output: "out/{f}.txt"
  shell: "touch {output}"
Run Code Online (Sandbox Code Playgroud)

生成作业的DAG时,此Snakefile引发以下错误:

Missing input files for rule test:
test/['test1', 'test2'].txt
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决此错误?

snakemake

4
推荐指数
1
解决办法
95
查看次数

类无法使用来自不同包的反射访问其自己的受保护成员变量

我有三个类:一个基类A和两个类BC它们都扩展A. A并且B在同一个包裹中并且C在不同的包裹中。

两者都有,B并且C有一个受保护的成员变量。A有一个方法(让我们称之为reflect),它使用反射和字符串输入通过this指针访问具有子类名称的字段。

reflectB对象调用是可以的,但是从C对象调用它会导致 IllegalAccessException。我无法理解这个异常,因为这意味着C没有访问权限来访问它自己的成员变量。为什么java不允许这种反射?

这是一个 MWE 来澄清我的意思:

parent/A.java

package Parent;
public abstract class A {
    public Object reflect(String parameter) throws NoSuchFieldException, IllegalAccessException{
        Class cl = getClass();
        return cl.getDeclaredField(parameter).get(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

parent/B.java

package Parent;
public class B extends A{
    protected Integer b;
    public B(Integer b){
        this.b …
Run Code Online (Sandbox Code Playgroud)

java reflection

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

标签 统计

java ×1

reflection ×1

snakemake ×1