[fpc-pascal] Java equivalent of Pascal's class reference functionality

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Thu Jun 9 02:36:26 CEST 2016

On 2016-06-09 00:46, Maciej Izak wrote:
> ± yes, it is called Class and you need no-arg constructor for that:

Thank you very much Maciej. I couldn't get your code to work. Eclipse
(thus Java Compiler) insisted that I replace Class<TVisitor> with
Class<TShowNameVisitor> which completely defeats the exercise - the
whole point is that I don't know which TVisitor descendant class will be
pass in. Very weird.

But, your information got me on the right track. I read some docs, did
some more searching and came up with the following solution which works.
Step 1 seems complete. :)

public class ClassReferenceTest {

	public void run() {
		System.out.println("Calling executeVisitor() from ClassReferenceTest...");
		executeVisitor(this, TShowNameVisitor.class);
		executeVisitor(this, TShowEmailVisitor.class);

	public void executeVisitor(ClassReferenceTest pData, Class<? extends
TVisitor> pVisClass) {
		TVisitor lVisitor = null;

		try {
			lVisitor = pVisClass.newInstance();
		} catch (IllegalAccessException | InstantiationException e) {


	public static void main(String[] args) {
		ClassReferenceTest t = new ClassReferenceTest();



Console Output:
Calling executeVisitor() from ClassReferenceTest...
ShowNameVisitor is executing against ClassReferenceTest
ShowEmailVisitor is executing against ClassReferenceTest



More information about the fpc-pascal mailing list