나는 중급 개발자이며 Java 추상 클래스의 이론에 대해 잘 알고 있으며 하위 클래스가 특정 생성자 매개 변수를 설정하도록 강제 생성자를 가질 수있는 방법과 추상 클래스 자체를 인스턴스화 할 수없는 방법에 대해 잘 알고 있습니다. 그러나 회사의 테스트 프레임 워크에서 일부 리팩토링 된 코드를 살펴보면 약간 당황 스럽습니다. 우리는 추상 클래스를 인스턴스화 할 수 없기 때문에자바 추상 클래스 생성자 및 새 키워드
public class DbWrapper extends AbstractDB {
@Override
public void assertColumnValueNotNull(final String schema, final String table, final String columnName, final String whereClause) {
new WaitForTestOutcomeThenAssert(this.assertionTemporalTolerance) {
@Override
public boolean checkCondition() {
return getColumnValue(schema, table, columnName, whereClause) != null;
}
}.waitForConditionThenAssert();
}
}
가, 누군가가 작성되는 것을 일어나고 정확히 무엇을 나에게 설명해주십시오 수 있습니다
이 추상 클래스
public abstract class WaitForTestOutcomeThenAssert {
private long maxWait;
public WaitForTestOutcomeThenAssert(long maxWait) {
this.maxWait = maxWait;
}
public void waitForConditionThenAssert() {
...
...
}
protected abstract boolean checkCondition();
}
이 클래스에서 참조됩니다 우리가 키워드를 추상 클래스 생성자 앞에서 사용할 때?
[익명 클래스] (http://www.docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm)입니다. 기본적으로 클래스는 이름없이 인라인으로 선언되었습니다. – clcto
[Java에서 익명 (내부) 클래스는 어떻게 사용됩니까?] (http://stackoverflow.com/questions/355167/how-are-anonymous-inner-classes-used-in-java) –
이 http를 참조하십시오. : //docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html#syntax-of-anonymous-classes –