就是调用类中的方法,最简单的用法是可以把方法参数化,invoke(class, method)比如你Test类里有一系列名字相似的方法setValue1、setValue2等等。可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue
如:public class MyTest{ public static void main(String[] args) { String [] names ={"tom","tim","allen","alice"}
Class<?> clazz = Test.class try Method method = clazz.getMethod("sayHi", String.class)for(String name:names)method.invoke(clazz.newInstance(),name)} catch (NoSuchMethodException e) e.printStackTrace() } catch (IllegalAccessExcepti e.printStackTrace( } catch (IllegalArgumentException {e.printStackTrace()} catch (InvocationTargetException e)e.printStackTrace() } catch (InstantiationException e {e.printStackTrace( }class Test{public void sayHi(String name){ System.out.println("Hi "+name) }
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
如例题
import java.awt.*
import java.awt.event.*
class MyCanvas extends Canvas implements MouseListener
{
int left=-1,right=-1
int x=-1,y=-1
MyCanvas()
{
setSize(200,200)
setBackground(Color.pink)
addMouseListener(this)
}
public void paint(Graphics g)
{
if(left==1)
{
g.drawString("●",x,y)
}
else if(right==1)
{
g.drawString("○",x,y)
}
}
public void mousePressed (MouseEvent e)
{
x=e.getX()
y=e.getY()
if(e.getModifiers()==InputEvent.BUTTON1_MASK)
{
left=1
right=-1
repaint()
}
else if(e.getModifiers()==InputEvent.BUTTON3_MASK)
{
right=1
left=-1
repaint()
}
}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e)
{
left=-1
right=-1
repaint()
}
public void mouseClicked(MouseEvent e){}
public void update(Graphics g)
{
if(left==1||right==1)
{
paint(g)
}
else
{
super.update(g)
}
}
}
public class Shubiaoshijian
{
public static void main(String args[])
{
Frame f=new Frame()
f.setBounds(100,100,300,300)
f.setVisible(true)
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0)
}
})
f.setLayout(new FlowLayout())
f.add(new MyCanvas())
f.validate()
}
}
中的这一部分
public void update(Graphics g)
{
if(left==1||right==1)
{
paint(g)
}
else
{
super.update(g)
}
}
super.update
详细介绍下到底是什么用处的作用
因为这个地方导致整个程序有些不解
解析:
如果left or right !=1那么面板清空!就这个作用!