精华内容
下载资源
问答
  • Android中得到布局文件对象三种方式

    千次阅读 2013-01-06 15:06:49
    Android中得到布局文件对象三种方式   第一种,通过Activity对象 View view = Activity对象.getLayoutInflater().inflater(R.layout.布局文件名,null);   第二种,通过Context对象 LayoutInflater lf = ...

    Android中得到布局文件对象有三种方式

     

    第一种,通过Activity对象

    View view = Activity对象.getLayoutInflater().inflater(R.layout.布局文件名,null);

     

    第二种,通过Context对象

    LayoutInflater lf = (LayoutInflater)Context对象.getSystemServic(Context.LAYOUT_INFLATER_SERVICE);

    View view = lf.inflate(R.layout.布局文件名,null);

    (Context对象说明: 1、它是Activity和Service的父类;2、也可以通过View对象.getContext得到该对象)

     

    第三种,还是通过Activity对象

    注意,实现上Activity是Context的子类,所以Activity也可以像Content对象一样式去取得布局文件即

    LayoutInflater lf = (LayoutInflater)Activity对象.getSystemServic(Context.LAYOUT_INFLATER_SERVICE);

    View view = lf.inflate(R.layout.布局文件名,null);

     

     

    展开全文
  • 1、直接通过类的静态属性.class得到。如:Date.class2、通过对象方法:getClass()得到,在Object中有这个方法。如:this.getClass();3、通过类的字符串全名,得到对象,forName("完全限定类名")...

    1、直接通过类的静态属性.class得到。如:Date.class

    2、通过对象的方法:getClass()得到,在Object中有这个方法。如:this.getClass();

    3、通过类的字符串全名,得到类对象,forName("完全限定类名")

    展开全文
  • 总结一下由对象名得到对象地址的方法 by flyingkisser 06.11.26 Dedicated to my mm,its been 3 years,thanks 方法一、ObReferenceObjectByName 声明: NTKERNELAPI NTSTATUS ObReferenceObjectByName( IN PUNICODE_...

     总结一下由对象名得到对象地址的方法
    by flyingkisser 06.11.26
    Dedicated to my mm,it's been 3 years,thanks
     
    方法一、ObReferenceObjectByName
    声明:
    NTKERNELAPI
    NTSTATUS
    ObReferenceObjectByName(
        IN PUNICODE_STRING ObjectName,
        IN ULONG Attributes,
        IN PACCESS_STATE PassedAccessState OPTIONAL,
        IN ACCESS_MASK DesiredAccess OPTIONAL,
        IN POBJECT_TYPE ObjectType,
        IN KPROCESSOR_MODE AccessMode,
        IN OUT PVOID ParseContext OPTIONAL,
        OUT PVOID *Object
        );
    参数说明:        
    1.名称的UNICODE_STRING结构的地址 
    2.对象属性,如OBJ_CASE_INSENSITIVE
    3. 一般设置为0
    4.访问属性,如:GENERIC_READ GENERIC_WRITE
    5.对象类型,是内核导出的变量,通过windbg我找到了这些:
    IoControllerObjectType          805519ec
    IoDriverObjectType              805519e0
    IoFileObjectType                805519d8
    IoDeviceHandlerObjectType       805519dc
    IoDeviceObjectType              805519e4
    IoAdapterObjectType             805519f0
    IoCompletionObjectType          805519e8
    后面的地址是这些变量的地址,实际调用时用此地址处的值进行调用
    6. 常量KernelMode  
    7.一般设置为0  
    8.用于接收返回对象地址的变量的地址
     
     
    如:
    mov     ecx,IoDriverObjectType
    mov     ecx,dword ptr [ecx]
    mov     ecx,dword ptr [ecx]
    invoke  ObReferenceObjectByName,addr szDevLow,OBJ_CASE_INSENSITIVE,0,0,/
            ecx,KernelMode,0,addr @lpDevObj
    补充:并不是所有类型的对象都能正常返回,像Device类型的对象,就不能用这个函数来得到其对象
     
    方法二、ObOpenObjectByName()-->ObReferenceObjectByHandle()
    声明:
    NTKERNELAPI
    NTSTATUS
    ObOpenObjectByName(
        IN POBJECT_ATTRIBUTES ObjectAttributes,
        IN POBJECT_TYPE ObjectType,
        IN KPROCESSOR_MODE AccessMode,
        IN OUT PACCESS_STATE PassedAccessState OPTIONAL,
        IN ACCESS_MASK DesiredAccess OPTIONAL,
        IN OUT PVOID ParseContext OPTIONAL,
        OUT PHANDLE Handle
        );
    参数说明
    1.OBJECT_ATTRIBUTES类型的结构体的地址
    2.见ObReferenceObjectByName参数5的说明,这里我发现设置0也能正常返回
    3.常量KernelMode
    4.一般设置为0
    5.期望获得的权限,如GENERIC_READ GENERIC_WRITE
    6.一般设置为0
    7.用来接收返回句柄的变量的地址
    如:    mov     eax,_lpObjName
            mov     @stOA.ObjectName,eax
            mov     @stOA._Length,sizeof OBJECT_ATTRIBUTES
            mov     @stOA.Attributes,OBJ_CASE_INSENSITIVE
            invoke  ObOpenObjectByName,addr @stOA,0,KernelMode,0,GENERIC_READ or GENERIC_WRITE,0,addr @hObj
            .if     !eax
                    ;打开成功,得到句柄,下面找到对象地址
                    invoke  ObReferenceObjectByHandle,@hObj,0,0,KernelMode,addr @lpObj,0
                    ;--句柄不要了,关掉
                    invoke  ZwClose,@hObj
            .endif
    和第一种方法的限制一样,并不是所有类型的对象都能正常返回,像Device类型的对象,就不能用
    此方法得到其对象
     
    方法三、ZwCreateFile()-->ObReferenceObjectByHandle()
    如:
            mov     eax,_lpObjName
            mov     @stOA.ObjectName,eax
            mov     @stOA._Length,sizeof OBJECT_ATTRIBUTES
            invoke  ZwCreateFile,addr @hObj,GENERIC_WRITE,addr @stOA,addr @stISB,0,/
                    FILE_ATTRIBUTE_NORMAL,0,FILE_OPEN_IF,FILE_SYNCHRONOUS_IO_NONALERT,0,0
    这种方法很容易,也没什么限制,是推荐使用的

    展开全文
  • document获取对象三种方法

    千次阅读 2017-07-31 10:21:57
    说到获取JavaScript对象方法,最常用的可能就是getElementById了,它是Document中最常用的获取对象的方式之一,另外还有两个常用的获取对象方法是getElementsByTagName 和getElementsByName。其中getElementById...

    Document对象中有几个常用的方法,我们在Dom简介中提到过。说到获取JavaScript对象的方法,最常用的可能就是getElementById了,它是Document中最常用的获取对象的方式之一,另外还有两个常用的获取对象的方法是getElementsByTagName 和getElementsByName。其中getElementById获取到的是单对象,而getElementsByName和 getElementsByTagName 获取到的都是集合。

    • 现在我们有一个form表单,内容为
    <html>
        <head>
            <title>Demo</title>
        </head>
        <body>
            <form id="form1" action="#">
                <a href="http://www.baidu.com/" name="clj" id="baidu">百度</a></br>
                <a href="http://www.google.cn/" name="clj" id="google">谷歌</a></br>
                <a href="http://www.gougou.com/" name="clj" id="gougou">狗狗</a></br>
            </form>
    
            <script>
    
            </script>
        </body>
    </html>

    接下来,我们通过三种方式来获取百度所对应的超链接地址。

    1. getElementsByTagName

    根据标签元素名称获取对象集合。
    假如上面的代码中不存在name 和 id 属性,那么我们只能通过tagName来判断了。

    <html>
        <head>
            <title>getElementsByTagName</title>
        </head>
        <body>
            <form id="form1" action="#">
                <a href="http://www.baidu.com/" >百度</a></br>
                <a href="http://www.google.cn/" >谷歌</a></br>
                <a href="http://www.gougou.com/" >狗狗</a></br>
            </form>
    
            <script>
                <!--getElementsByTags-->
                debugger;
                var hrefs = document.getElementsByTagName("A");
                for (var i=0; i < hrefs.length; i++) {
                    var aHref = hrefs[i];  // var aHref = hrefs.item(i);
                    if (aHref.innerHTML == "百度") {
                        alert(aHref.href);
                        break;
                    }
                }           
            </script>
        </body>
    </html>

    通过 document.getElementsByTagName(“A”);获取到元素集合hrefs,然后遍历hrefs,再去比较每一项的内容,是否为“百度”,判断到了后,break跳出循环。

    hrefs 拥有length属性,指的是集合中包含的对象的个数,方法中一个比较有用的方法 item(),是根据元素的序号获取元素的。

    2. getElementsByName

    根据name属性获取对象集合。这时候,获取的对象必须要有name属性。

    <html>
        <head>
            <title>getElementsByName</title>
        </head>
        <body>
            <form id="form1" action="#">
                <a href="http://www.baidu.com/" name="clj" >百度</a></br>
                <a href="http://www.google.cn/" name="clj" >谷歌</a></br>
                <a href="http://www.gougou.com/" name="clj" >狗狗</a></br>
            </form>
    
            <script>
                <!--getElementsByName-->
                var hrefs = document.getElementsByName("clj");
                for (var i=0; i < hrefs.length; i++) {
                    var aHref = hrefs[i]; // var aHref = hrefs.item(i);
                    if (aHref.innerHTML == "百度") {
                        alert(aHref.href);
                        break;
                    }
                }
            </script>
        </body>
    </html>

    通过getElementsByName 获取到的集合的处理方式同getElementsByTagName处理方式相同,这里就不再细述了。

    3. getElementById

    根据元素的id获取该对象。我们给上述的代码中的每个超链接都添加上id属性,代码就成了我们刚开始看到的示例代码了。

    这时候,我们可以一目了然的看到百度对应的超链接的id属性值为baidu,我们可以直接使用getElementById 来获取这个超链接对象。

    <html>
    <head>
    <title>Demo</title>
    </head>
    <body>
        <form id="form1" action="#">
            <a href="http://www.baidu.com/" name="clj" id="baidu">百度</a></br> <a
                href="http://www.google.cn/" name="clj" id="google">谷歌</a></br> <a
                href="http://www.gougou.com/" name="clj" id="gougou">狗狗</a></br>
        </form>
    
        <script>
        <!--getElementById-->
            var href1 = document.getElementById("baidu");
            alert(href1.href);
        </script>
    </body>
    </html>

    4. 总结

    综上三种获取对象的方式,可以看出,getElementById 是获取对象最直接的方式,也是效率最高的方式;但是如果元素没有id属性,但有name属性,那么就使用getElementsByName 来获取对象的集合,再遍历集合中的每一个对象;如果元素也没有name属性呢,那就只有使用getElementsByTagName来获取对象了。

    此文转自:document获取对象三方法

    展开全文
  • 获取Class对象三种方法

    千次阅读 2018-06-03 15:16:40
    1、调用Object类的getClass()方法得到Class对象,这也是最常见的产生Class对象方法。例如: MyObject x; Class c1 = x.getClass(); 2、使用Class类的中静态forName()方法获得与字符串对应的Class对象。例如:...
  • PHP获取对象属性的三种方法

    万次阅读 2017-02-21 10:26:13
    今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性。记得以前看到的代码都是用get_object_vars()这个函数获取的,昨天查看php文档,发现还可以用foreach遍历对象...
  • java 反射获取对象三种方法

    千次阅读 2018-07-24 19:23:51
    获取Class对象三种方式  1 Object ——&gt; getClass();  2 任何数据类型(包括基本数据类型)都有一个“静态”的class属性  3 通过Class类的静态方法:forName(String className)(常用) public ...
  • Spring Boot 二 从Session中获取域对象三种方法
  • 不说废话,直接源码,详细关于理论方法的知识,自己去网上面找吧,这个是关于Spring创建对象三种方法中的:用静态工厂创建。 需要用到三个类, 第一个类: package dao; public class AA { public ...
  • 使用DriverManager类获取数据库连接对象 配置容器数据源 依赖注入框架
  • 如何得到RequestDispatcher对象

    千次阅读 2006-01-19 20:43:00
    三种方法可以得到Request Dispatcher对象。A.javax.servlet. ServletRequest的getRequestDispatcher(String path)方法,其中path可以是相对路径,但不能越出当前Servlet上下文。如果path以“/”开头,则解析为相...
  • Java创建对象的四种方法

    千次阅读 2019-05-22 16:33:56
    Java创建对象的四种方法 使用New关键字 使用Class类的newInstance方法,newInstance方法调用无参构造器创建对象(反射),Class.forName.newInstance(); 使用clone方法 反序列化 使用构造器的两:New关键字...
  • Spring创建对象三种方法,分别是: 1、构造函数创建 2、静态工厂方法 3、实例工厂方法 这里说下第一种方法,采用构造函数来创建,我这里直接给源码,凑合着看看,能用就可以了,如果想要更深入的...
  • 1. 利用@SessionAttribute进行获取这是最简单直接的方法,可以直接在方法的参数中直接进行注入,如下:// 可以直接从Session中抓取域对象 public Account login(@SessionAttribute Account account) { return ...
  • Python获取对象属性的4种方法

    万次阅读 2018-11-19 10:23:43
    本文将简单介绍四获取对象方法。 假如有以下的类: class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return 'name=%s, age=%s' ...
  • spring创建对象三种方式详解

    万次阅读 2018-01-18 17:29:37
    本文主要讲解IOC容器创建对象三种方式。创建对象三种方式1) 调用无参数构造器 2) 带参数构造器 3) 工厂创建对象 包括:3.1 工厂类,静态方法创建对象 3.2 工厂类,非静态方法创建对象1.调用无参数的...
  • 实体对象三种状态以及get、load、persist三个方法的详解
  • spring容器创建对象三种方式 1. 通过构造器的方式【无参构造器、有参构造器】,需要掌握 2.通过静态工厂:指的是通过类的静态方法得到对象!【了解】 3.通过实例工厂:指的是通过类对象的普通方法得到对象!【了解...
  • 反射概念:获取class文件对象三种方式
  • CorelDRAW软件中支持多种复制对象的操作,本教程将详解CorelDRAW中六复制对象方法方法一 选择复制对象,点击编辑→复制,再点击复制→粘贴,即可将对象粘贴到原位置,移动就能得到两个对象方法二 在...
  • Hibernate的对象有3状态,分别为:瞬时态(Transient)、持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为 PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。 瞬时态由new命令...
  • java在session存取值和对象的一种方法

    万次阅读 2019-05-14 09:40:44
    java在session存取值和对象的一种方法 在后台方法中存值的一方式,将对象或者值用session的setAttribute(key,value);方法存值, //登录方法 public BaseResult user_login(String userNO,String password,...
  • Promise对象的几种方法

    千次阅读 2018-09-24 16:34:03
    一是对象的状态不受外界影响,有3状态:Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejectd(已失败)。只有异步操作的结果可以决定当前是哪一状态,任何其他操作都无法改变这个状态; 二是一旦状态...
  • js对象三种继承方式

    千次阅读 2017-06-23 15:07:56
    js中有三种继承方式 1.js原型(prototype)实现继承 复制代码 代码如下:  function Person(name,age){  this.name=name;  this.age=age;  }  Person.prototype.sayHello=f
  • Windows 中的三种对象

    千次阅读 2017-09-30 16:21:02
    原文链接 ... 窗口站  一个窗口站包含剪贴板,原子表和一个或者多...每一个窗口站对象是一个安全对象,当一个窗口站被创建了,它被绑定到调用者进程和当前的会话。  交互式窗口站是唯一可以显示用户界面或者接收用
  • C++中创建对象的两种方法及其区别

    千次阅读 2013-11-28 14:01:33
    在C++里,有两种方法创建对象方法一: ClassName object(param); 这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间。 注意:为节省存储空间,C++创建对象时仅分配用于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 965,373
精华内容 386,149
关键字:

得到对象的三种方法