예제 #1
0
  public void testConstField() throws Exception {
    CtClass cc = sloader.get("test2.ConstField");
    CtField f;
    f = cc.getField("b");
    assertEquals(true, ((Boolean) f.getConstantValue()).booleanValue());
    f = cc.getField("i");
    assertEquals(3, ((Integer) f.getConstantValue()).intValue());
    f = cc.getField("j");
    assertEquals(7L, ((Long) f.getConstantValue()).longValue());
    f = cc.getField("f");
    assertEquals(8.0F, ((Float) f.getConstantValue()).floatValue(), 0.0);
    f = cc.getField("d");
    assertEquals(9.0, ((Double) f.getConstantValue()).doubleValue(), 0.0);
    f = cc.getField("s");
    assertEquals("const", f.getConstantValue());
    f = cc.getField("obj");
    assertEquals(null, f.getConstantValue());
    f = cc.getField("integer");
    assertEquals(null, f.getConstantValue());
    f = cc.getField("k");
    assertEquals(null, f.getConstantValue());

    cc.getClassFile().prune();

    f = cc.getField("i");
    assertEquals(3, ((Integer) f.getConstantValue()).intValue());
    f = cc.getField("k");
    assertEquals(null, f.getConstantValue());
  }