<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black">
		<meta name="format-detection" content="telephone=no">
		<title>java反射机制精讲-思洋互动</title>
		<meta name="keywords" content="java反射机制精讲">
	    <meta name="description" content="java反射机制精讲
目录
1.反射机制的概念
2.反射的根底Class类
3.反射的用法
4.反射的使用示例
作者简介：全栈学习笔记，一个正在尽力的人
反射机制的概念：
在运转状况中，关于恣意一...">
		<meta name="renderer" content="webkit" />
		<link href="/css/main.css?v=39" rel="stylesheet">
		<link href="/css/base.css?v=39" rel="stylesheet">
        <link href="/css/swiper-3.4.2.min.css" rel="stylesheet">
		<script type="text/javascript" src="/js/jquery.min.js"></script>
        <script type="text/javascript" src="/js/swiper-3.4.2.min.js"></script>
		<!--[if lt IE 9]>
            <script src="/js/html5shiv.min.js"></script>
            <script src="/js/respond.min.js"></script>
            <link href="/css/ie.css" rel="stylesheet">
        <![endif]-->
		<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?8914d517c927d8e794148d05e387fb17";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<link rel="canonical" href="https://www.ciya.cn/article/3674.html">
		</head>
	<body class="no-banner">
		<div class="container">
			<div class="header">
	<div class="header-top">
		<div class="w1700">
			<a href="https://www.ciya.cn/"><img src="/images/logo.png?v=2"></a>
		</div>
	</div>
	<div class="header_b">
		<header class="slide">
			<div id="navToggle" class="menu-handler">
				<span class="burger burger-1 trans"></span>
				<span class="burger burger-2 trans-fast"></span>
				<span class="burger burger-3 trans"></span>
			</div>
		</header>
	</div>
	<nav class="slide">
		<div class="w1700">
			<a class="index" href="/"></a>
			<ul>
								<li><a href="https://www.ciya.cn/case/12.html">项目案例</a></li>
								<li><a href="https://www.ciya.cn/website/9.html">网站建设</a></li>
								<li><a href="https://www.ciya.cn/marketing/10.html">网络营销</a></li>
								<li><a href="https://www.ciya.cn/media/11.html">新媒体</a></li>
								<li class="active"><a href="https://www.ciya.cn/news/16.html">动态</a></li>
								<li><a href="https://www.ciya.cn/about/8.html">关于</a></li>
								<li><a href="https://www.ciya.cn/contact/13.html">联系</a></li>
							</ul>
		</div>
	</nav>
</div>            <div class="content slide">
                <div class="position bgf1">
                    <div class="w1700">
                        <a href="https://www.ciya.cn/">首页 ></a>
                        <a href="https://www.ciya.cn/news/16.html">动态 ></a>
                        <a href="https://www.ciya.cn/news/35.html">网站知识</a>
                    </div>
                </div>
                <div class="case-type">
                    <div class="w1700">
                                                <a href="https://www.ciya.cn/news/32.html" >品牌合作</a>
                                                <a href="https://www.ciya.cn/news/31.html" >新闻动态</a>
                                                <a href="https://www.ciya.cn/news/38.html" >网站建设</a>
                                                <a href="https://www.ciya.cn/news/41.html" >网站制作</a>
                                                <a href="https://www.ciya.cn/news/40.html" >网站设计</a>
                                                <a href="https://www.ciya.cn/news/42.html" >运营推广</a>
                                                <a href="https://www.ciya.cn/news/35.html"  class="active">网站知识</a>
                                            </div>
                </div>
                <div class="padding-tb80">
                    <div class="w1700 clear">
                        <div class="fl xwxq-l">
                            <div class="noselettext">
                                <div class="xwxq-title mg-bt60 wow slideUp">
                                    <h1 class="mg-bt35">java反射机制精讲</h1>
                                    <span>时间：2023-05-16</span>
                                </div>
                                <div class="edit2 mg-bt60 wow slideUp">
                                                                        <p>java反射机制精讲<br />
目录<br />
1.反射机制的概念<br />
2.反射的根底Class类<br />
3.反射的用法<br />
4.反射的使用示例<br />
作者简介：全栈学习笔记，一个正在尽力的人<br />
反射机制的概念：<br />
在运转状况中，关于恣意一个类，都能够获取到这个类的一切特点和办法，关于恣意一个目标，都能够调用它的恣意一个办法和特点(包含私有的办法和特点)，这种动态获取的信息以及动态调用目标的办法的功用就称为java言语的反射机制。反射被视为动态言语的要害。简略来说反射便是java的各种成分映射成对应的java类。<br />
浅显点讲，经过反射，该类对咱们来说是彻底通明的，想要获取任何东西都能够。包含结构办法，特点，办法。<br />
java反射机制供给的功用：<br />
在运转时判断恣意一个目标所属的类；<br />
在运转时结构恣意一个类的目标；<br />
在运转时判断恣意一个类所具有的成员变量和办法；<br />
在运转时调用恣意一个目标的办法；<br />
生成动态代理。<br />
这其实也涉及到了言语的动态与静态，java言语本身不算是动态言语，可是他有一个十分突出的动态机制，便是咱们所说的反射机制。<br />
什么是动态言语呢？便是说，程序在运转的时分，（注意是运转的时分，不是编译的时分）答应改变程序结构或许变量类型。反之静态便是没有这些特点了。<br />
反射的根底Class类<br />
Class类是反射完成的根底，所以想要学会反射，必须先把握Class类的一些根本的概念。<br />
类是什么？类是Class类的实例目标，所以说Class类是一切类的类。<br />
要想解剖一个类，必须先获取到该类的字节码文件目标。而解剖运用的便是Class类中的办法，所以先要获取每一个字节码文件对应的Class类型的目标。<br />
Class类没有公共的结构办法，Class目标是在类加载的时分由Java虚拟机以及经过调用类加载器中的defineClass办法自动结构的，因此不能显式地声明一个Class目标。这儿又涉及到一个东西，类的加载<br />
扼要的说明一下：<img class="aligncenter  wp-image-4925" src="https://zzzjtd.com/wp-content/uploads/2019/08/221.png" alt="Java" width="361" height="203" /><br />
类加载器：当程序需要是用某个类时，假如该类还没有被加载到内存中，则，体系会经过加载，衔接，初始化这三步来对类进行初始化<br />
加载：便是指将class文件读入内存（编译之后的文件是.class文件），并为之创立一个Class目标<br />
任何类被运用时，体系都会树立一个Class目标，第一次的时分会，第二次则会判断这个类是否存在。<br />
衔接：验证是否有正确的内部结构，并和其他类协调一致<br />
准备为类的静态成员分配内存，并设置默认初始化值<br />
并做一个解析:将类的二进制数据中的字符引证替换为直接引证。<br />
上面提到Class目标是不能直接创立的，可是咱们能够经过其他办法得到Class类的，现在有三种办法能够得到咱们想要的Class类，得到Class类之后就能正常的运用反射了。<br />
获取Class的三种办法（获取一个类的字节码目标）：<br />
第一种：运用目标获取，运用目标的getClass获取<br />
Personperson=newPerson();Classclazz=person.getClass();<br />
第二种：运用静态特点class<br />
Classclazz=Person.class<br />
第三种：运用Class类的静态办法forName（字符串的类名）<br />
注；类名要写全包名<br />
Classclazz=Calss.forName(&#8220;…….&#8221;);<br />
好了，要点来了，反射怎样玩才风趣！<br />
反射的用法<br />
上面说了经过反射能够得到恣意一个类的什么什么，下面来看看是不是真的。<br />
第一步要干啥？当然是经过之前的哪三种办法来得到这个能够为所欲为的Class类。有三种办法，咱们先都做个示例吧！<br />
上代码<br />
//获取Class第一种办法Studentstudent=newStudent();<br />
Classclazz=student.getClass();//获取Class第二种办法ClassclazzTwo=Student.class;//获取Class第三种办法ClassclazzThree=Class.forName(&#8220;demo.qzxxbj.entity.Student&#8221;);<br />
System.out.println(&#8220;第一个&#8221;+clazz+&#8221;\n第二个&#8221;+clazzTwo+&#8221;\n第三个&#8221;+clazzThree);<br />
成果<br />
第一个classdemo.qzxxbj.entity.Student第二个classdemo.qzxxbj.entity.Student第三个classdemo.qzxxbj.entity.Student<br />
能够看到三种办法得到的Class目标是相同的，没有差异。<br />
第三种办法是会有一个找不到类的反常抛出的。<br />
其间Student便是一个简略的类，能够是任何类。<br />
经过Class获取恣意一个类的特点<br />
Student类的代码<br />
packagedemo.qzxxbj.entity;/**<br />
*@author微信大众号：全栈学习笔记<br />
*@date2020/3/29<br />
*@description*/publicclassStudent{privateStringname;privateIntegerage;privateStringsex;publicintnumber;publicintgetNumber(){returnnumber;<br />
}publicvoidsetNumber(intnumber){this.number=number;<br />
}publicStringgetName(){returnname;<br />
}publicvoidsetName(Stringname){this.name=name;<br />
}publicIntegergetAge(){returnage;<br />
}publicvoidsetAge(Integerage){this.age=age;<br />
}publicStringgetSex(){returnsex;<br />
}publicvoidsetSex(Stringsex){this.sex=sex;<br />
}<br />
}<br />
以下获取Class的办法都采用第二种，比较简洁<br />
//获取Class第二种办法ClassclazzTwo=Student.class;//获取该类指定特点名的public成员变量，包含父类的Fieldfield=clazzTwo.getField(&#8220;number&#8221;);//fieldpublicintdemo.qzxxbj.entity.Student.numberSystem.out.println(&#8220;该类指定特点名的public成员变量，包含父类的&#8221;+field);//获取该类指定称号声明的变量，即不包含父类的FielddeField=clazzTwo.getDeclaredField(&#8220;name&#8221;);//deFieldprivatejava.lang.Stringdemo.qzxxbj.entity.Student.nameSystem.out.println(&#8220;该类一切声明的变量，即不包含父类的&#8221;+deField);//获取该类一切的public声明的成员变量Fieldfields[]=clazzTwo.getFields();System.out.println(&#8220;public声明的变量:&#8221;);//publicintdemo.qzxxbj.entity.Student.numberfor(Fieldfield1:fields){System.out.println(field1);<br />
}//获取该目标的一切成员变量FielddeFields[]=clazzTwo.getDeclaredFields();System.out.println(&#8220;该目标的一切成员变量&#8221;);//privatejava.lang.Stringdemo.qzxxbj.entity.Student.name//privatejava.lang.Integerdemo.qzxxbj.entity.Student.age//privatejava.lang.Stringdemo.qzxxbj.entity.Student.sex//publicintdemo.qzxxbj.entity.Student.numberfor(Fieldfield1:deFields){System.out.println(field1);<br />
}<br />
记住getFields(),getField(Stringname),getDeclaredFields(),getDeclaredField(Stringname)的差异，你就能好好把握这个知识点！<br />
经过Class获取恣意成员办法<br />
仍是看代码吧！<br />
获取成员办法Method<br />
//获取Class第二种办法ClassclazzTwo=Student.class;//根据办法名以及参数类型获取,只能获取public声明的办法，包含父类的Methodmethod=clazzTwo.getMethod(&#8220;setAge&#8221;,Integer.class);//publicjava.lang.Integerdemo.qzxxbj.entity.Student.getAge()System.out.println(method);//根据办法名以及参数称号获取该类声明的一切的特点办法，不包含父类的MethoddeMethod=clazzTwo.getDeclaredMethod(&#8220;setAge&#8221;,Integer.class);System.out.println(deMethod);//获取该目标声明的一切的public办法，包含父类的Methodmethods[]=clazzTwo.getMethods();//获取该目标声明的一切的办法，可是不包含父类的办法MethoddeMethods[]=clazzTwo.getDeclaredMethods();<br />
一个Method办法打印出来是什么呢？上面代码中也包含了<br />
publicvoiddemo.qzxxbj.entity.Student.setAge(java.lang.Integer)<br />
和之前讲的Field是不是很相似。<br />
既然提到了办法，那么就必定涉及到了办法调用，咱们得到了这些办法，又该怎样调用这个类里边的办法呢？运用invoke函数，Method这个类里边包含了一个invoke函数，英语好的就知道了，这个invoke的中文意思便是“调用”。<br />
怎样用呢？<br />
//获取Class第二种办法ClassclazzTwo=Student.class;//根据办法名以及参数类型获取,只能获取public声明的办法，包含父类的Methodmethod=clazzTwo.getMethod(&#8220;setAge&#8221;,Integer.class);//publicjava.lang.Integerdemo.qzxxbj.entity.Student.getAge()System.out.println(method);//使用Class创立一个目标的实例Studentstudent=(Student)clazzTwo.newInstance();//函数调用Objectvalue=method.invoke(student,20);//nullSystem.out.println(value);<br />
以上的代码，你可能会看不懂，我来讲一下，首要，咱们获取一个类的Class，然后咱们经过这个Class获取该类的一个setAge办法，获取到这个办法后继续调用这个办法，调用办法是不是应该调用一个实例目标里边的办法？所以咱们需要先实例化一个目标，经过什么办法呢，经过class里边的newInstance()，创立一个实例，这种办法需要该实例化的类具有一个无参结构办法。还有其他办法也能创立一个实例，后边咱们会说。创立出一个实例目标之后，咱们就能开始调用办法了。<br />
经过invoke对办法进行调用，invoke的第一个参数便是一个实例化目标，不然我去哪找这个办法。第二个参数，或许第三个，等等，后边的一切参数都是我调用的该办法所具有的参数，按照次序填进去就OK了。然后这个函数回来的是一个Object目标，你都能想到，我调用一个办法是不是要让他做一些事，做了这些事需要回来一个东西，不知道这个东西是啥，就用Object获取嘛。因为咱们调用的这个办法不需要回来值，所以便是null了。很简略是不是。学到了记得给我点个关注哦！精彩美文第一时间推送到你的手中。<br />
经过Class获取结构办法<br />
这个被我放到了最后来学习，毕竟我觉得用的份额比较少。一起来学习一下怎样用Class获取结构办法，并调用他。<br />
publicStudent(Stringname,intid){this.name=name;this.id=id;<br />
}<br />
这儿咱们在Student类里边添加了一个结构办法。<br />
然后咱们来获取这个结构办法。<br />
//获取Class第二种办法ClassclazzTwo=Student.class;//获取无参结构办法，public声明的，包含父类，加上参数时便是获取特定的结构办法Constructorconstructor=clazzTwo.getConstructor();//publicdemo.qzxxbj.entity.Student()System.out.println(constructor);//获取该类一切的public声明的结构办法Constructorconstructors[]=clazzTwo.getConstructors();//获取指定参数的结构办法ConstructordeConstructor=clazzTwo.getDeclaredConstructor(String.class,Integer.class);//获取一切的该类的结构办法，不包含父类的ConstructordeConstructors[]=clazzTwo.getDeclaredConstructors();<br />
上面代码应该很简单看懂吧，我就不细说了。这儿说一下怎样运用得到的结构办法，结构办法顾名思义便是来实例化目标的，上面咱们也有提到怎样经过Class实例化一个目标，现在咱们来经过结构方办法实例化一个目标<br />
Studentstudent=(Student)deConstructor.newInstance(&#8220;全栈学习笔记&#8221;,21);//21System.out.println(student.getAge());<br />
现在知道了吧，咱们差不都将反射的功用讲完了，就差一个反射的动态代理，这个比较重要，会专门出一篇博客，码字不易。希望点个关注。微信大众号：全栈学习笔记，精彩美文每天为你推送。<br />
最后我根据我自己曾经的经历写了一个java反射的sql语句拼接，适当于是一个反射的使用吧。<br />
反射的使用示例<br />
经过反射动态的生成SQL语句，是不是也有点牛逼的感觉？<br />
直接上代码吧，我只发一个SQL语句，感兴趣的能够私信我找我拿完整的代码！<br />
publicStringinsert(Objectobject)throwsIllegalAccessException,NoSuchMethodException,InvocationTargetException{`//insertintostudent(id,name,sex)values(1,&#8221;全栈学习笔记&#8221;,&#8221;男&#8221;)StringBuildersql=newStringBuilder();<br />
Classclazz=object.getClass();<br />
sql.append(&#8220;insertinto&#8221;);<br />
sql.append(clazz.getSimpleName()+&#8221;(&#8220;);<br />
Field[]fields=clazz.getDeclaredFields();for(Fieldfield:fields){<br />
sql.append(field.getName()+&#8221;,&#8221;);<br />
}<br />
sql.deleteCharAt(sql.length()-1);<br />
sql.append(&#8220;)&#8221;);<br />
sql.append(&#8220;values(&#8220;);for(Fieldfield:fields){<br />
field.setAccessible(true);Objectvalue=field.get(object);StringfieldName=field.getName();Stringstr1=fieldName.substring(0,1).toUpperCase();Stringstr2=fieldName.substring(1,fieldName.length());StringstrValue=str1.concat(str2);//StringstrValue=fieldName.substring(0,1).toUpperCase().concat(fieldName.substring(1,fieldName.length()));Methodmethod=clazz.getMethod(&#8220;get&#8221;+strValue,null);Objectvalue1=method.invoke(object,null);//if(value1.getClass().equals(String.class))//if(field.getType().equals(String.class))if(value1instanceofString){<br />
sql.append(&#8220;\&#8221;&#8221;).append(value1).append(&#8220;\&#8221;&#8221;).append(&#8220;,&#8221;);<br />
}else{<br />
sql.append(value1).append(&#8220;,&#8221;);<br />
}<br />
}<br />
sql.deleteCharAt(sql.length()-1);<br />
sql.append(&#8220;)&#8221;);<br />
System.out.println(sql.toString());returnsql.toString();<br />
}</p>


		
										                                </div>
                            </div>
                                                        <div class="wzbq wow slideUp mg-bt30">
                                <span>文章标签：</span>
                                <div class="bqnr">
                                                                                                             <a href="https://www.ciya.cn/tags/website-building/">网站建设</a>
                                                                                                                                                                                                                                                                                                                                                                    </div>
                            </div>
                                                        <div class="xwxq-bot bgf1 wow slideUp">
                                <div class="xwxq-fy clear">
                                    <a class="fl" href="/article/3675.html"><i></i>线程两次start()会发生什么？</a>
                                    <a class="fr" href="/article/3673.html"><i></i>你竟然还在用 try–catch-finally</a>
                                </div>
                                <a class="fhlb" href="#"></a>
                            </div>
                        </div>
                        <div class="fr xwxq-r">
                            <div class="xwxq-tj-page bgf1 mg-bt40 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title mg-bt30">
                                        <h3>最新案例</h3><span>LATEST CASES</span>
                                    </div>
                                    <div class="zxal">
                                        <div class="swiper-container">
                                            <div class="swiper-wrapper">
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/409.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214103120.jpg" alt="广州呼吸研究院"/></div>
                                                            <p>广州呼吸研究院</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/433.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102846.jpg" alt="融创集团"/></div>
                                                            <p>融创集团</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/268.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102923.jpg" alt="粤海集团"/></div>
                                                            <p>粤海集团</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/414.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211216/20211216115258.jpg" alt="恒大足球学校"/></div>
                                                            <p>恒大足球学校</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/477.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102958.jpg" alt="侨鑫集团"/></div>
                                                            <p>侨鑫集团</p>
                                                        </a>
                                                    </div>
                                                                                                </div>
                                        </div>
                                        <div class="zxalDot text-center swiperDot"></div>
                                    </div>
                                </div>
                            </div>
                            <div class="xwxq-tj-page bgf1 mg-bt40 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title tjxw-title-line mg-bt20">
                                        <h3>热点新闻</h3><span>TOP NEWS</span>
                                    </div>
                                    <ul class="rdxw">
                                                                                <li><a href="https://www.ciya.cn/article/3559.html">1  java heap space(解决方法)</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1222.html">2  如何在网站后台上传附件</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1643.html">3  如何在网站后台上传PDF文件</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1142.html">4  什么是流？</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/3543.html">5  java swing还有人用吗(swing为什么会被淘汰)</a></li>
                                                                            </ul>
                                </div>
                            </div>
                            <div class="xwxq-tj-page bgf1 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title tjxw-title-line mg-bt20">
                                        <h3>最新动态</h3><span>NEWS</span>
                                    </div>
                                    <ul class="rdxw">
                                                                                <li><a href="https://www.ciya.cn/article/7318.html">1  商务网站的维护与更新：持续优化，保持竞争力</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7317.html">2  商务网站的社交媒体营销：扩大品牌影响力，吸引更多潜在客户</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7316.html">3  商务网站的广告投放：增加收益，提高知名度</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7315.html">4  商务网站的在线客户服务：提供优质客服，提升用户满意度</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7314.html">5  商务网站的支付系统集成：安全、便捷的交易方式</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7313.html">6  商务网站搜索引擎优化（SEO）：提升排名，增加流量</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7312.html">7  商务网站响应式设计：实现多设备兼容，提升用户体验</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7311.html">8  商务网站开发：选择合适的编程语言和技术栈</a></li>
                                                                            </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="footerbox">
	<div class="footer">
		<div class="w1700">
			<ul>
				<li>
					<span class="fttitle">思洋 · 广州总部</span>
					<div>
						<p>广州天河区珠江新城富力盈力大厦北塔2706</p>
						<p>020-38013166（网站咨询专线）</p>
					</div>
					<p>400-001-5281 （售后服务热线）</p>
				</li>
				<li>
					<span class="fttitle">思洋 · 深圳</span>
					<div>
						<p>深圳市坂田十二橡树庄园F1-7栋</p>
						<p>Site/ http://www.szciya.com </p>
						<p>E-mail/ itciya@vip.163.com</p>
					</div>
					<p>品牌服务专线：400-001-5281 </p>
				</li>
				<li>
					<span class="fttitle">思洋 · 湖南</span>
					<div>
						<p>长沙市天心区芙蓉中路三段398号新时空大厦5楼</p>
						<p>联系电话/ (+86 0731)88282200</p>
					</div>
					<p>品牌服务专线/ 400-966-8830</p>
				</li>
				<li class="lastli">
					<p class="mt10">旗下运营网站：</p>
					<div class="mt10">
						<img src="/images/ftlogo2.png">
						<img src="/images/gogo.png">
						<img src="/images/ftlogo3.png">
						<img src="/images/ftlogo4.png">
						<img src="/images/ftlogo11.png">
					</div>
				</li>
			</ul>
		</div>
	</div>
	<div class="ft_bottom">
		<div class="w1700">
			<p class="cop">Copyright © 2016 广州思洋文化传播有限公司，保留所有权利。 <a href="https://beian.miit.gov.cn/" target="_blank">粤ICP备09033321号</a>
			</p>
		</div>
	</div>
</div>
<div class="le-box active">
	<div class="t show780">
		<a href="tel:13570966600">
			<img src="/images/ml9-1.png?v=1" alt="" class="sow i">
			<img src="/images/ml9-1.png?v=1" alt="" class="iove i">
		</a>
	</div>
	<div class="t">
		<img src="/images/ml1-1.png?v=1" alt="" class="sow i">
		<img src="/images/ml1-1.png?v=1" alt="" class="iove i">
		<div class="iov">
			<div class="img">
				<img src="/images/qr.jpg" alt="与项目经理交流">
			</div>
			<div class="h">扫描二维码<br>与项目经理交流</div>
		</div>
	</div>
	<div class="t">
		<img src="/images/ml2-1.png?v=1" alt="" class="sow i">
		<img src="/images/ml2-1.png?v=1" alt="" class="iove i">
		<div class="iov">
			<div class="img">
				<img src="/images/qq001.jpg" alt="">
			</div>
			<div class="h">扫描二维码<br>与项目经理交流</div>
		</div>
	</div>
	<!--<div class="t">-->
		<!--<a href="http://wpa.qq.com/msgrd?v=3&amp;uin=1607245872&amp;site=ciya.cn&amp;menu=yes" target="_blank">-->
			<!--<img src="/images/ml2-1.png?v=1" alt="" class="sow i">-->
			<!--<img src="/images/ml2-1.png?v=1" alt="" class="iove i">-->
		<!--</a>-->
	<!--</div>-->
	<div class="t hide780">
		<a href="https://affim.baidu.com/unique_510425/chat?siteId=19536215&userId=510425&siteToken=8914d517c927d8e794148d05e387fb17" target="_blank">
			<img src="/images/ml3-1.png?v=1" alt="" class="sow i">
			<img src="/images/ml3-1.png?v=1" alt="" class="iove i">
		</a>
	</div>
</div>
<script>
	$(window).scroll(function(){
//		if($(window).scrollTop()>200){
//			$(".le-box").addClass("active");
//		}else{
//			$(".le-box").removeClass("active");
//		}
	})
</script>
<div class="wap_fx">
	<a href="tel:13570966600" class="phone"></a>
	<a href="mqqwpa://im/chat?chat_type=wpa&uin=1607245872&version=1&src_type=web&web_src=ciya.cn" target="_blank" class="qq"></a>
	<a href="javascript:;" class="wx2"></a>
	<a class="kef986" style="background:rgba(0,0,0,.6) url(/images/ml3-1.png?v=1) no-repeat center;background-size: cover;border-radius: 4px;" href="https://p.qiao.baidu.com/cps/chat?siteId=18513940&userId=510425&siteToken=e5e1bde478969b43bf99b7703a694c0b" target="_blank"></a>
</div>
<div class="wap-wxcode">
	<div class="middle-box">
		<div class="middle-inner">
			<div class="wap-wxcode-con">
				<img src="/images/ff_ewm.jpg" alt=""/>
				<div class="wap-wxcode-bot"><span class="wxname">ciya68</span><button class="copy-btn" data-clipboard-text="ciya68">点击复制</button></div>
				<div class="gb1002"></div>
			</div>
		</div>
	</div>
</div>
<input id="hide" type="hidden">
<script src="/js/clipboard.min.js"></script>
<script>
	$(function(){
		$(".wx2").click(function(){
			$(".wap-wxcode").show();
		});
		$(".gb1002").click(function(){
			$(".wap-wxcode").hide();
		});
		var copyBtn=new ClipboardJS('.copy-btn');
		copyBtn.on("success",function(e){
			// 复制成功
			// alert(e.text);
			showMessage('已成功复制微信号','success',2000)
			e.clearSelection();
		});
		copyBtn.on("error",function(e){
			//复制失败；
			showMessage('复制微信号失败','error',2000)
			console.log( e.action )
		});
		function showMessage(message,type,time) {
			let str = ''
			switch (type) {
				case 'success':
					str = '<div class="success-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color:#fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
							'    <span class="mes-text">'+message+'</span></div>'
					break;
				case 'error':
					str = '<div class="error-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color: #fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
							'    <span class="mes-text">'+message+'</span></div>'
			}
			$('body').append(str)
			setTimeout(function () {
				$('.'+type+'-message').remove()
			},time)
		}


		var ua = navigator.userAgent.toLowerCase();
		var isWeixin = ua.indexOf('micromessenger')!= -1;
		if(isWeixin){
			$(".kef986").hide();
		}

	})
</script>
            </div>
        </div>
		<script type="text/javascript" src="/js/trunk.js?v=2"></script>
        <script>
            var zxal=null;
            var len=$(".zxal .swiper-slide").length;
            if(len>1){
                zxal = new Swiper('.zxal .swiper-container',{
                    speed:600,
                    loop:true,
                    autoplay : 5000,
                    autoplayDisableOnInteraction : false,
                    pagination : '.zxalDot',
                    paginationClickable :true,
                })
            }else{
                $(".zxalDot").hide();
            }
        </script>
	</body>
</html>

