나는 pdf에서 텍스트 추출을 다루고있다. 이를 위해 나는 전략을 직접 작성했습니다. 하나의 동적 클래스가 있고이 클래스 내에서 텍스트 추출 전략을 호출합니다. 그러나 동적 클래스에 매개 변수를 도입 할 때 전략 클래스 내에서 사용할 수 없습니다. 명확하게하려면 아래 코드 템플릿을 추가하고 있습니다.void 클래스에 매개 변수를 호출하는 방법은 무엇입니까?
제 질문은 간략하게, renderText에서 "get_intro"클래스에 나타나는 매개 변수 unq을 호출 할 수 있습니까? 또는 다른 방법으로 "render_extro"클래스에서 생성 된 변수 또는 매개 변수를 "get_intro"에서 호출 할 수 있습니까?
public class trial {
public trial(){}
public Boolean get_intro(String pdf, String unq){
try { ....
for (int j = 1; j <= 3; j++) {
out.println(PdfTextExtractor.getTextFromPage(reader, j, semTextExtractionStrategy));
}
...} catch (Exception e) {
e.printStackTrace();
}
semTextExtractionStrategy 부분 :
public abstract class DefaultTextExtractionStrategy<D>
implements TextExtractionStrategy {
protected D documentInfo;
public final void setDocumentInfo(D documentInfo) {
this.documentInfo = documentInfo;
}
public class SemTextExtractionStrategy extends DefaultTextExtractionStrategy<SemDoc> {
@Override
public void beginTextBlock() {
documentInfo ...
}
public class SemDoc {
public String unq:
}
그리고 get_intro에서
가 : SemDoc semDoc = new SemDoc();
semDoc.unq = unq;
semTextExtractionStrategy.setDocumentInfo(semDoc);
out.println(PdfTextExtractor.getTextFromPage(reader, j, semTextExtractionStrategy));
문제가
당신이 원하는에
public class SemTextExtractionStrategy implements TextExtractionStrategy {
@Override
public void beginTextBlock() {
}
@Override
public void renderText(TextRenderInfo renderInfo) {
text = renderInfo.getText();...}
@Override
public void endTextBlock() {
}
@Override
public void renderImage(ImageRenderInfo renderInfo) {
}
@Override
public String getResultantText() {
//return text;
return main;
}
}
글쎄, 하나의 옵션은 평가판 클래스에서 unq에 대한 변수를 추가하는 것입니다. SemTextExtractionStrategy 클래스에서 액세스 할 수 있도록이 데이터를 저장할 수 있지만 관련된 모든 클래스의 전체 세부 정보가 없어도 실제로 말하기는 어렵습니다. – abalos