Java에 처음 오 셨습니다. 샘플 앱을 실행하려고합니다. 문제와 관련이있는 코드 섹션을 포함합니다. 필요한 경우 전체 테스트 앱을 게시 할 수 있습니다. Ijavac 컴파일 오류 - "... 추상화 할 수 없습니다."
응용 프로그램이 실행되는 htmlunit lib/test를 통해 응용 프로그램이 대상 웹 사이트를 구문 분석 할 때 생성되는 css 경고를 처리하기 위해 오류 처리기를 구현하려고합니다.
ErrorHandler를 호출하기 위해 MycssErrorHandler 클래스를 구현하는 방법을 정확히 모르겠습니다. 또한 정확히 코드/테스트 클래스의 본체에서 개체를 인스턴스화하는 방법을 잘 모르겠습니다.
생각/의견/코드 덩어리
감사합니다 .. 도움이 될 것입니다! 나는 다음과 같은 오류를 받고 있어요
내가 컴파일 할 때 :
[[email protected] parseapp2]# javac -Xlint -classpath '/opt/htmlunit/lib/*:/parseapp2/' sjsu_classes.java
warning: [path] bad path element "/opt/htmlunit/lib/xml-apis.jar": no such file or directory
warning: [path] bad path element "/opt/htmlunit/lib/xercesImpl.jar": no such file or directory
warning: [path] bad path element "/opt/htmlunit/lib/serializer.jar": no such file or directory
sjsu_classes.java:92: sjsu_classes.MycssErrorHandler is abstract; cannot be instantiated
ErrorHandler ierr = new MycssErrorHandler();
^
1 error
3 warnings
====================================
테스트 코드 청크는 다음과 같습니다
import org.w3c.css.sac.ErrorHandler;
import com.gargoylesoftware.htmlunit.DefaultCssErrorHandler;
import org.xml.sax.SAXParseException;
public class sjsu_classes {
//==handle the warnings thrown from the js functions..
public static class MyIncorrectnessListener implements IncorrectnessListener
{
@Override
public void notify(String arg0, Object arg1)
{
//System.err.println("Argument : " + arg0.toString() + ", Object : ");
}
}
//==handle the warnings thrown from the css functions..
// public static class MycssErrorHandler implements DefaultCssErrorHandler
// public static class MycssErrorHandler implements ErrorHandler
// public class MycssErrorHandler implements ErrorHandler
public abstract class MycssErrorHandler implements ErrorHandler
// protected class MycssErrorHandler implements ErrorHandler
{
//@Override
public void notify(String arg0, Object arg1)
{
//System.err.println("Argument : " + arg0.toString() + ", Object : ");
}
//@Override
public void fatalError(SAXParseException ex)
{
//fatals.add(ex);
}
}
//public static void main(String[] args) throws Exception {
public void main(String[] args) throws Exception {
// Create and initialize WebClient object
// WebClient webClient = new WebClient(BrowserVersion.EXPLORER_7);
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
//WebClient webClient = new WebClient();
IncorrectnessListener ilisten = new MyIncorrectnessListener();
ErrorHandler ierr = new MycssErrorHandler();
webClient.setIncorrectnessListener(ilisten);
webClient.setCssErrorHandler(ierr);
(어쨌든 추상적으로 MycssErrorHandler을 선언해야 할 이유는 무엇입니까? 당신은 인터페이스 :)를 사용하여 구체적인 클래스를 구현하는 거 야). 아마도 Core Java와 같은 Java에 관한 좋은 책을 읽어야합니다. – SLaks
안녕하세요 ... 답변 주셔서 감사합니다 .... 나는 행운과 함께 이것을 처리하려고하는 수많은 스레드를 보았습니다! 그래서 내가해야 할 일은 본질적으로 다른 메소드를 오버라이드하는 더미 스텁을 생성하는 것입니다. 감사합니다. –