java中Method类有啥作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中Method类有啥作用相关的知识,希望对你有一定的参考价值。

java Method类是最终类,不能继承,使用方式如下:

/**

 */
package com.timer.demo.objectsocket;

import java.lang.reflect.Method;

/**
 * @author 崔冉
 *
 */
public class InvokeTester 
public int add(int param1, int param2) 
  return param1 + param2;
    

public String echo(String mesg)  

  return "echo" + mesg;

public static void main(String[] args) throws Exception 
  Class classType = InvokeTester.class;
  Object invokertester = classType.newInstance();
  
  Method addMethod = classType.getMethod("add", new Class[]  int.class,
    int.class );
  //Method类的invoke(Object obj,Object args[])方法接收的参数必须为对象,
  //如果参数为基本类型数据,必须转换为相应的包装类型的对象。invoke()方法的返回值总是对象,
  //如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,
  //再将其返回
  
  Object result = addMethod.invoke(invokertester, new Object[] 
    new Integer(100), new Integer(200) );
  //在jdk5.0中有了装箱 拆箱机制 new Integer(100)可以用100来代替,系统会自动在int 和integer之间转换
  System.out.println(result);

  Method echoMethod = classType.getMethod("echo",
    new Class[]  String.class );
  result = echoMethod.invoke(invokertester, new Object[]  "hello");
  System.out.println(result);
 



参考技术A Method类是最终类,不能继承。

通常在反射中用的比较多,至于反射是什么就不知这个题的重点了。
另外,对于一个类的了解最好的途径是API,所以我建议题主去看下API,这远比我把API粘贴过来有用追问

看api没看懂,你说的也有些笼统
api说Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。
可以通俗的讲这是干什么的,有什么做用,怎么理解吗

追答

简单的来说,就是当有一个类,你不确定类里面有什么的时候,有一种技术叫做反射,可以获取类中所有的方法和属性,而这个Method类实例化的对象就是用来接受反射后获取的方法的类,你懂了吧?

本回答被提问者采纳
参考技术B 一般用于反射。获取一个Class对象。然后调用对象里的方法。

css 中的 clearfix 类有啥作用? [复制]

【中文标题】css 中的 clearfix 类有啥作用? [复制]【英文标题】:What does the clearfix class do in css? [duplicate]css 中的 clearfix 类有什么作用? [复制] 【发布时间】:2012-03-21 13:27:47 【问题描述】:

我看到div 标签使用clearfix 类,而它是子类divs 使用float 属性。 clearfix 类如下所示:

.clearfix:after 
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;

.clearfix 
    display: inline-block;

.clearfix 
    display: block;

我发现如果我在使用bottom-border 属性时不使用clearfix,边框会显示在子divs 上方。有人可以解释 clearfix 类的作用吗?另外,为什么有两个display 属性?这对我来说似乎很奇怪。我特别好奇content:'.' 是什么意思。

谢谢,G

【问题讨论】:

【参考方案1】:

花车的工作原理

当页面上存在浮动元素时,非浮动元素环绕浮动元素,类似于报纸中文字环绕图片的方式。从文档的角度来看(HTML 的最初目的),这就是浮动的工作原理。

floatdisplay:inline

display:inline-block 发明之前,网站使用float 将元素放在一起。 float 优于 display:inline,因为对于后者,您不能设置元素的尺寸(宽度和高度)以及垂直填充(顶部和底部) - 浮动元素可以这样做,因为它们被视为块元素。

浮动问题

主要问题是我们使用 float 违背了它的预期目的。

另一个是float 允许并排的块级元素,浮动不赋予其容器形状。就像position:absolute,元素被“从布局中取出”。例如,当一个空容器包含一个浮动的 100px x 100px <div><div> 不会赋予容器 100px 的高度。

position:absolute 不同,它会影响它周围的内容。浮动元素之后的内容将“环绕”该元素。它首先在其旁边渲染,然后在其下方渲染,就像报纸文本如何围绕图像流动一样。

清除修复

clearfix 所做的是强制浮动之后的内容或包含浮动的容器在其下方呈现。 clear-fix 有很多版本,但它的名字来源于常用的版本——使用 CSS 属性 clear 的版本。

示例

Here are several ways to do clearfix ,取决于浏览器和用例。只需要知道如何在 CSS 中使用clear 属性以及浮动在每个浏览器中的渲染方式,即可实现完美的跨浏览器清除修复。

你有什么

您提供的样式是一种具有向后兼容性的 clearfix 形式。 I found an article 关于这个 clearfix。事实证明,这是一个旧的 clearfix - 仍然为旧浏览器提供服务。文章中还有一个更新、更简洁的版本。这是细分:

您拥有的第一个 clearfix 在目标元素和下一个元素之间附加了一个不可见的伪元素,其样式为 clear:both。这会强制伪元素在目标下方呈现,并在伪元素下方呈现下一个元素。

第二个附加样式display:inline-block,早期浏览器不支持。 inline-block 与 inline 类似,但为您提供了一些阻止元素的属性,例如宽度、高度以及垂直填充。这是针对 IE-MAC 的。

这是 display:block 由于上述 IE-MAC 规则的重新应用。这条规则被 IE-MAC “隐藏”了。

总而言之,这 3 条规则使 .clearfix 能够跨浏览器工作,同时考虑到旧浏览器。

【讨论】:

最终的display:block 不会在所有浏览器上覆盖display:inline-block,包括那些支持inline-block 的浏览器? 编辑了我的答案。这不是最后一个元素。它是在它之后的一个空元素。有时您会看到其他人在最后一个浮动元素之后添加<div class="clearfix"></div> 以模拟:after 的“空白内容”。这适用于旧版浏览器。 你的解释很详细。但是为什么点表示空白? 它只是虚拟内容,因此是“空白”。由于height:0visibility:hidden,您不会真正看到它。除了清除之外,它不会在设计中赋予任何东西。 @Joseph 我同意您的回答,但我很想知道应用上述(clearfix)类的结构(HTML)。您能否详细说明,以便将来阅读此问题的任何人都可以轻松理解。请提前致谢。【参考方案2】:

当一个元素,比如divfloated时,它的父容器不再考虑它的高度,即

<div id="main">
  <div id="child" style="float:left;height:40px;"> Hi</div>
</div>

默认情况下,父容器的高度不是 40 像素。如果您使用这些容器来构建布局,这会导致很多奇怪的小问题。

因此,各种框架使用的clearfix 类通过使父容器“确认”包含的元素来解决此问题。

每天,我通常只使用 960gs、Twitter Bootstrap 等框架来进行布局,而不用担心具体的机制。

可以在这里阅读更多内容

http://www.webtoolkit.info/css-clearfix.html

【讨论】:

谢谢!我也用 Bootstrap...【参考方案3】:

clearfixoverflow:hidden 相同。两者都清除父级的浮动子级,但clearfix 不会切断溢出到parent 的元素。 它也适用于 IE8 及更高版本。

无需在 content & .clearfix 中定义"."。就这样写吧:

.clr:after 
    clear: both;
    content: "";
    display: block;

HTML

<div class="parent clr"></div>

阅读这些链接了解更多

http://css-tricks.com/snippets/css/clear-fix/,

What methods of ‘clearfix’ can I use?

【讨论】:

以上是关于java中Method类有啥作用的主要内容,如果未能解决你的问题,请参考以下文章

Java 中 package-info 这个类有啥作用,如何使用

Bootstrap 的控制标签类有啥作用?

CssBaseline 类有啥作用?

weka 中的 ClusterMembership 类有啥作用?

不明白java中的泛型和抽象类有啥区别,感觉他们作用一样啊,为啥要用2种方法呢

LockSupport 线程工具类有啥用?