好了,這是不允許的:什麼解決方法將實例變量傳遞給超級構造函數?
public class ServiceError extends RuntimeException {
private final UUID uuid = UUID.randomUUID();
public ServiceError(...) {
super("{" + uuid.toString() + "} " + ...); // error on reference to uuid
}
可是我該怎麼做我想要什麼?沒有Exception.setMessage
,所以在super構造函數完成後我無法更改消息,我需要在構造函數中傳遞UUID。
覆蓋getMessage()? –
重寫'getMessage()'是一個非常具體的解決方案。有更多的一般可能性嗎? –