Use a bean as the return type
public class Result
{
private boolean error = false;
private Object result = null;
public Result(boolean error, Object result){ this.error=error; this.result=result;}
public boolean isError(){ return this.error; }
public Object getResult(){ return this.result; }
}
then your function becomes
public Result myFunc()
{
//do stuff here
Result r = new Result(false,retObj);
return r;
}
Calling code does
Result result = myFunc();
if(result == null || result.isError())
{
//handle error
}
else
{
Object actualResult = result.getResult();
//process actualResult
}
You may use generics to pass any kind of class so that you may declare Result<TypeName> that returns TypeName rather than Object