【问题标题】:How to extract class variables and class methods from a java file using Python?如何使用 Python 从 java 文件中提取类变量和类方法?
【发布时间】:2021-07-14 18:40:28
【问题描述】:
private int OutsideFUnction(){
    int yoho;
}

public class Blog implements Subject {

private List<Observer> observers;
    private String article;
    private boolean changed;int Manaky; int Chahal; String letssee;

    public Blog() {
        this.observers = new ArrayList<>();
    }
    
    @Override
    public void register(Observer obj) {
        int insideRegister;
        if(obj == null) throw new NullPointerException("Null Observer");
        if(!observers.contains(obj)) observers.add(obj);
    }
    @Override
    public void unregister(Observer obj) {
        observers.remove(obj);
    }
    
    public String IAMNotAtStart;
    @Override
    public void notifyObservers() {
        List<Observer> observersLocal = null;
        System.out.println("HOOOOOO")
        if(!changed) return;
        
        observersLocal = new ArrayList<>(this.observers);
        this.changed = false;
        
        for(Observer obj: observersLocal){
            obj.update();
        }
    }
    @Override
    public Object getUpdate(Observer obj) {
        return this.article;
    }
    
    public void postBlog(String words){
         System.out.println("New Article Posted:"+words);
         this.article = words;
         this.changed = true;
         notifyObservers();
    
    }
    
}


private nicheWalaFunction OutsideFUnction(){
    int lettestNicheWala;
}

我有上面的 java 文件。我正在使用 Python 从这个文件中读取。我的目标是从此文件中提取类变量和方法。我怎样才能做到这一点?我不希望将方法内定义的变量标记为类变量或将类外定义的方法称为类方法。请指导任何人,我怎样才能通过 Python sn-p 做到这一点。

【问题讨论】:

  • 寻找一个用 Python 编写的 Java 解析器是一个不错的起点。
  • @chepner 的目标是为此创建我自己的....你能通过正则表达式或字符串操作解决上述问题吗?
  • 不,正则表达式远非合适。您将要从正确的语法(我假设它是无上下文的)开始并编写一个解析器。有许多解析器生成器工具可以采用适当格式的语法并为您提供一个有效的解析器。

标签: python python-3.x python-2.7 data-structures file-handling


【解决方案1】:

为 Java 使用 Python 解析器,我推荐javalang

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2023-01-26
    • 1970-01-01
    相关资源
    最近更新 更多