content: package com.alibaba.json.bvt.bug;
  
  import junit.framework.TestCase;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.annotation.JSONField;
  
  public class Issue183 extends TestCase {
  
      public void test_issue_183() throws Exception {
          A a = new A();
          a.setName("xiao").setAge(21);
          String result = JSON.toJSONString(a);
          A newA = JSON.parseObject(result, A.class);
          Assert.assertTrue(a.equals(newA));
      }
  
      static interface IA {
  
          @JSONField(name = "wener")
          String getName();
          
           @JSONField(name = "wener")
           IA setName(String name);
      }
  
      static class A implements IA {
  
          String name;
          int    age;
  
          public String getName() {
              return name;
          }
  
          public int getAge() {
              return age;
          }
  
          public A setAge(int age) {
              this.age = age;
              return this;
          }
  
          public A setName(String name) {
              this.name = name;
              return this;
          }
  
          @Override
          public boolean equals(Object obj) {
              if (this == obj) return true;
              if (obj == null) return false;
              if (getClass() != obj.getClass()) return false;
              A other = (A) obj;
              if (age != other.age) return false;
              if (name == null) {
                  if (other.name != null) return false;
              } else if (!name.equals(other.name)) return false;
              return true;
          }
          
      }
  }
  