다양한 형식의 개체를 받아 들일 수있는 메서드를 만들고, 전달되는 개체에 toString을 수행 한 다음 인쇄합니다. 때로는 int, 때로는 길거나 때로는 문자열, 때로는 사용자 정의 객체 등이 될 수도 있습니다. 유일한 주장은 toString() 메서드를 가져야한다는 것입니다. 기본적으로, 나는 메소드를 사용할 때마다이 API 외부에서 toString()을 호출하지 않고 파이썬의 오리 - 타이핑을 시뮬레이트하고 싶다.toString() 메서드를 사용하여 개체로 매개 변수를 받아들입니다.
이/**
* Log a message at TEST level
* @param message: An object of any class that implements toString.
*/
public void test(Class<?> message) {
String messageString = message.toString();
log(Level.TEST, messageString);
}
이 구문이 올바른 것 같다,하지만 내가 원하는 것을 제공하지 않습니다
여기/**
* Log a message at TEST level
* @param message: The message to log
*/
public void test(String message) {
log(Level.TEST, message);
}
지금까지 그것을 강화하는 시도에서 내가 가진 무엇 :
이
은 기존 기능이었다 :Cannot resolve method 'test(int)'
Java에서이 기능을 수행하는 올바른 방법이 있습니까?
이 메서드는 프리미티브를 제외한 모든 형식에서 작동합니다. 그리고 원시 타입은'toString()'메소드를 가지고 있지 않기 때문에 당신도 그것을 기대하지 말아야한다. –
원시 타입은 클래스의 객체가 아니기 때문에 클래스와 함께 동작하지 않습니다. Integer 클래스 등을 사용할 수 있습니다 ... –
@GiladNaaman 나는 아무 소용이없는 것을 시도했습니다. 'test (java.lang.Integer)'메서드를 해결할 수 없습니다. –