title: Returning Unknown Type Java
body: <p>So I'm working with JSON in Java and JSON can have a base of either an Array or an Object. In my Config class, I take a class as an argument so I can create the file accordingly if it doesn't exist. I also store the class as a private field so I know in future.</p>
  
  <p>However, when I get to reading the file, I'd prefer to have multiple return types though the same method name. If I return <code>Object</code>, I then have to cast the returned value which I want to avoid.</p>
  
  <p>Current code:</p>
  
  <pre><code>public class Config {
  
      private File dir = null;
      private File file = null;
      private Class clazz = null;
  
      public Config(String program, String fileName, Class root) throws IOException {
          this.dir = new File(System.getProperty("user.home") + File.separator + program);
          if (!this.dir.exists()) {
              this.dir.mkdir();
          }
  
          this.file = new File(this.dir + File.separator + fileName);
          if (!this.file.exists()) {
              this.file.createNewFile();
  
              if (root.getName().equals(JSONArray.class.getName())) {
                  Files.write(this.file.toPath(), "[]".getBytes());
              } else if (root.getName().equals(JSONObject.class.getName())) {
                  Files.write(this.file.toPath(), "{}".getBytes());
              }
          }
  
          this.clazz = root;
      }
  
      public JSONArray readConfig() {
          return null;
      }
  
      public JSONObject readConfig() {
          return null;
      }
  
  }
  </code></pre>
  
  <p>Is there anyway I can do what I want without having to return <code>Object</code>?</p>