어떤 이유로 든 반환 형식 클래스 (SQLExecutionInfo 클래스)를 실행하는 것으로 보이는 일부 Java 코드를 이해하려고 시도하고 있으며 그 밖의 메서드는 없습니다. 는 아마도 이것은 자바가 어떻게 작동하는지 단순히Java 메소드의 접두사 반환 유형 만 실행되는 이유는 무엇입니까?
방법은 이렇게 시작된다 (즉 관계없이 메소드 본문 내에서 첫번째 ?? 실행 반환되는 클래스의 유형이 무엇인지의 여부) :
protected Query.SQLExecutionInfo compileSingleQDB(StatementExpression statement, boolean keyNeeded) throws StatementException, XMLDBCException {
//body of method
System.out.println("body of method");
}
/*****THE REFERENCED SQLExecutionInfo class is a subclassed within Query.java***********/
public static class SQLExecutionInfo {
public SqlExpression sql = null;
public StatementInfo sInfo = null;
public Mapper mapper = null;
public List childrenQueries = null;
public int[] idPosition = null;
public int idCount = -1;
public SQLExecutionInfo() {
}
public SQLExecutionInfo(SqlExpression sql, Mapper mapper) {
System.out.println("POINT ALPHA2:"+ sql);
this.sql = sql;
this.mapper = mapper;
}
들어 compileSingleQDB 메서드 (즉, 본문)의 일부 이유가 실행되지만 SQLExecutionInfo 클래스가 호출되고 System.out.println ("POINT ALPHA2 :"+ sql)이 호출됩니다.
누구나 설명해주세요. 이유가 무엇입니까?
감사합니다, 파블로
나 더 많은 정보를 제공하겠습니다 :
이나를 당황이이 하나,
모든 코드 실행이 여기에서 시작 : 아직 어떻게 든
System.out.println("POINT SQL:"+jdbcExecInfo.sql); // Returns null at this stage
try {
System.out.println("POINT A");
jdbcExecInfo = compileSingleQDB(((Variable) Qdb.get(0)).getExpression(), false);
System.out.println("POINT B");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("POINT SQL:"+jdbcExecInfo.sql); // Somehow now has a value ????
가 포인트 B에 도달하고 내가 넣은 경우에도 : Thread.dumpStack(); and new Error().printStackTrace();
compileSingleQDB 메서드 내에서 아무것도 나타나지 않습니다.
protected Query.SQLExecutionInfo compileSingleQDB(StatementExpression statement, boolean keyNeeded) throws XQueryException, XMLDBCException {
return null;
}
jdbcExecInfo.sql 여전히 어떻게 든 값 내 이전의 대답은 후
'(main 메소드의 유일한 문과 같이) 컨텍스트 외부에 (의미있는) 인수 (null 및 false)가없는'compileSingleQDB' 메서드를 호출하면 SQLExecutionInfo의 생성자가 호출됩니다. –
이 코드를 컴파일하는 방법을 알지 못합니다. compileSingleQDB 메서드는 아무 것도 반환하지 않으며 내 서명에 필요합니다. – laz