Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a Java program that allows a user to input the name of a class through the

ID: 3780269 • Letter: W

Question

Write a Java program that allows a user to input the name of a class through the keyboard (at runtime) and then prints out the following information to a file: the class name, its parent class’s name, all implemented interfaces, all public fields, all public constructors (including all arguments), and all public methods of that class. As an example,

if you input “java.awt.Rectangle,”

the output should look something like this:

Rectangle_info.txt class java.awt.Rectangle

extends java.awt.geom.Rectangle2D

implements java.awt.Shape, java.io.Serializable, java.lang.Cloneable

int height

int width

int x

int y

Rectangle()

Rectangle(Dimension)

Rectangle(int, int)

void add(int,int)

void add(Point)

void add(Rectangle)

Boolean contains(int,int)

Note:As a side note, your output file does need not match the above example verbatim. I don’t care if you use short or long class names (e.g. Rectangle vs. java.awt.Rectangle).

Explanation / Answer

package snippet;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Scanner;

public class RefTest {
  
  
  
      
  
  
private int f1(
Object p, int x) throws NullPointerException
{
if (p == null)
throw new NullPointerException();
return x;
}
static void printDetails(Class cls,BufferedWriter bw) throws IOException
{
Method method_list[]
= cls.getDeclaredMethods();
for (int i = 0; i < method_list.length;
i++) {
Method m = method_list[i];
System.out.println(" Class_Name = " + m.getName());
System.out.println(" decl class = "+m.getDeclaringClass());
bw.write(" Class_Name = " + m.getName());
bw.write(" Declaring class = "+m.getDeclaringClass());
Class pvec[] = m.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
{
   System.out.println("Parameter #" + j + " " + pvec[j]);
   bw.write(" Parameter #" + j + " " + pvec[j]);
}

Class evec[] = m.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
{
     
  
System.out.println("exc #" + j + " " + evec[j]);
System.out.println("return type = " +m.getReturnType());
System.out.println("-----");

bw.write(" exc #" + j + " " + evec[j]);
bw.write(" return type = " +m.getReturnType());
bw.write(" -----");
}
}
  

Constructor ConstrucorList[]
= cls.getDeclaredConstructors();
for (int i = 0; i < ConstrucorList.length; i++)
{
Constructor ct = ConstrucorList[i];
System.out.println("Class_Name= " + ct.getName());
System.out.println("decl class = " +
ct.getDeclaringClass());
  
bw.write(" Class_Name= " + ct.getName());
bw.write(" Declaring class = " +ct.getDeclaringClass());
Class pvec[] = ct.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
{
   System.out.println("Parameter #" + j + " " + pvec[j]);
   bw.write(" Parameter #" + j + " " + pvec[j]);
}

Class evec[] = ct.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
{
   System.out.println("exc #" + j + " " + evec[j]);
System.out.println("-----");
bw.write(" exc #" + j + " " + evec[j]);
bw.write(" exc #" + j + " " + evec[j]);
}

}
if(cls.getSuperclass()!=null)
{
   printDetails(cls.getSuperclass(),bw);
}
  
  
  
}

  
  
public static void main(String args[])
{
   String s;
   System.out.println("enter class Class_Name ");
   Scanner sc=new Scanner(System.in);
   s=sc.next();
  
   BufferedWriter bw = null;
       FileWriter fw = null;
  
  
   // file.createNewFile();
  
     
  
   try {

          

           fw = new FileWriter("Output.txt");
           bw = new BufferedWriter(fw);
          

          

       } catch (IOException e) {

          

       }
          
  
try {
     
Class cls = Class.forName(s);
printDetails(cls,bw);
bw.flush();
fw.close();


     
}catch (Throwable e) {
System.err.println(e);
}

}
}

========================================================

Output:

enter class Class_Name

java.awt.Rectangle

Class_Name = add

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle

Class_Name = add

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Point

Class_Name = add

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = equals

decl class = class java.awt.Rectangle
Parameter #0 class java.lang.Object

Class_Name = toString

decl class = class java.awt.Rectangle

Class_Name = isEmpty

decl class = class java.awt.Rectangle

Class_Name = contains

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle

Class_Name = contains

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Point

Class_Name = contains

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int
Parameter #2 int
Parameter #3 int

Class_Name = contains

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = getLocation

decl class = class java.awt.Rectangle

Class_Name = getSize

decl class = class java.awt.Rectangle

Class_Name = grow

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = setSize

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Dimension

Class_Name = setSize

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = resize

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = initIDs

decl class = class java.awt.Rectangle

Class_Name = intersects

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle

Class_Name = union

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle

Class_Name = intersection

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle

Class_Name = getX

decl class = class java.awt.Rectangle

Class_Name = getY

decl class = class java.awt.Rectangle

Class_Name = getWidth

decl class = class java.awt.Rectangle

Class_Name = getHeight

decl class = class java.awt.Rectangle

Class_Name = getBounds

decl class = class java.awt.Rectangle

Class_Name = getBounds2D

decl class = class java.awt.Rectangle

Class_Name = setBounds

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int
Parameter #2 int
Parameter #3 int

Class_Name = setBounds

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle

Class_Name = setRect

decl class = class java.awt.Rectangle
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = clip

decl class = class java.awt.Rectangle
Parameter #0 double
Parameter #1 boolean

Class_Name = reshape

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int
Parameter #2 int
Parameter #3 int

Class_Name = setLocation

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = setLocation

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Point

Class_Name = move

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = translate

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = inside

decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int

Class_Name = outcode

decl class = class java.awt.Rectangle
Parameter #0 double
Parameter #1 double

Class_Name = createIntersection

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = createUnion

decl class = class java.awt.Rectangle
Parameter #0 class java.awt.geom.Rectangle2D
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int
Parameter #2 int
Parameter #3 int
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Parameter #0 int
Parameter #1 int
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Dimension
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Point
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Rectangle
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Class_Name= java.awt.Rectangle
decl class = class java.awt.Rectangle
Parameter #0 class java.awt.Point
Parameter #1 class java.awt.Dimension

Class_Name = add

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double

Class_Name = add

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Point2D

Class_Name = add

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = equals

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.lang.Object

Class_Name = hashCode

decl class = class java.awt.geom.Rectangle2D

Class_Name = contains

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double

Class_Name = contains

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = intersects

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = union

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Rectangle2D
Parameter #1 class java.awt.geom.Rectangle2D
Parameter #2 class java.awt.geom.Rectangle2D

Class_Name = getBounds2D

decl class = class java.awt.geom.Rectangle2D

Class_Name = setRect

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = setRect

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = outcode

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double

Class_Name = outcode

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Point2D

Class_Name = createIntersection

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = createUnion

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = intersect

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Rectangle2D
Parameter #1 class java.awt.geom.Rectangle2D
Parameter #2 class java.awt.geom.Rectangle2D

Class_Name = getPathIterator

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.AffineTransform
Parameter #1 double

Class_Name = getPathIterator

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.AffineTransform

Class_Name = intersectsLine

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = intersectsLine

decl class = class java.awt.geom.Rectangle2D
Parameter #0 class java.awt.geom.Line2D

Class_Name = setFrame

decl class = class java.awt.geom.Rectangle2D
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double
Class_Name= java.awt.geom.Rectangle2D
decl class = class java.awt.geom.Rectangle2D

Class_Name = clone

decl class = class java.awt.geom.RectangularShape

Class_Name = isEmpty

decl class = class java.awt.geom.RectangularShape

Class_Name = contains

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Point2D

Class_Name = contains

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = intersects

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = getX

decl class = class java.awt.geom.RectangularShape

Class_Name = getY

decl class = class java.awt.geom.RectangularShape

Class_Name = getWidth

decl class = class java.awt.geom.RectangularShape

Class_Name = getHeight

decl class = class java.awt.geom.RectangularShape

Class_Name = getBounds

decl class = class java.awt.geom.RectangularShape

Class_Name = getPathIterator

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.AffineTransform
Parameter #1 double

Class_Name = setFrame

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Point2D
Parameter #1 class java.awt.geom.Dimension2D

Class_Name = setFrame

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Rectangle2D

Class_Name = setFrame

decl class = class java.awt.geom.RectangularShape
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = getMinX

decl class = class java.awt.geom.RectangularShape

Class_Name = getMinY

decl class = class java.awt.geom.RectangularShape

Class_Name = getMaxX

decl class = class java.awt.geom.RectangularShape

Class_Name = getMaxY

decl class = class java.awt.geom.RectangularShape

Class_Name = setFrameFromDiagonal

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Point2D
Parameter #1 class java.awt.geom.Point2D

Class_Name = setFrameFromDiagonal

decl class = class java.awt.geom.RectangularShape
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double

Class_Name = getCenterX

decl class = class java.awt.geom.RectangularShape

Class_Name = getCenterY

decl class = class java.awt.geom.RectangularShape

Class_Name = getFrame

decl class = class java.awt.geom.RectangularShape

Class_Name = setFrameFromCenter

decl class = class java.awt.geom.RectangularShape
Parameter #0 class java.awt.geom.Point2D
Parameter #1 class java.awt.geom.Point2D

Class_Name = setFrameFromCenter

decl class = class java.awt.geom.RectangularShape
Parameter #0 double
Parameter #1 double
Parameter #2 double
Parameter #3 double
Class_Name= java.awt.geom.RectangularShape
decl class = class java.awt.geom.RectangularShape

Class_Name = finalize

decl class = class java.lang.Object
exc #0 class java.lang.Throwable
return type = void
-----

Class_Name = wait

decl class = class java.lang.Object
Parameter #0 long
Parameter #1 int
exc #0 class java.lang.InterruptedException
return type = void
-----

Class_Name = wait

decl class = class java.lang.Object
Parameter #0 long
exc #0 class java.lang.InterruptedException
return type = void
-----

Class_Name = wait

decl class = class java.lang.Object
exc #0 class java.lang.InterruptedException
return type = void
-----

Class_Name = equals

decl class = class java.lang.Object
Parameter #0 class java.lang.Object

Class_Name = toString

decl class = class java.lang.Object

Class_Name = hashCode

decl class = class java.lang.Object

Class_Name = getClass

decl class = class java.lang.Object

Class_Name = clone

decl class = class java.lang.Object
exc #0 class java.lang.CloneNotSupportedException
return type = class java.lang.Object
-----

Class_Name = registerNatives

decl class = class java.lang.Object

Class_Name = notify

decl class = class java.lang.Object

Class_Name = notifyAll

decl class = class java.lang.Object
Class_Name= java.lang.Object
decl class = class java.lang.Object

=======================================================

Code will print on console as well as in file also

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote