The method is deprecated.如果這個(gè)方法過時(shí),怎么知道最新的方法是什么?F3進(jìn)入該類,查看對(duì)應(yīng)的可用方法即可 。
Java中如何正確而優(yōu)雅的終止運(yùn)行中的線程Java中終止線程的方式主要有三種:1、使用stop()方法,已被棄用 。原因是:stop()是立即終止,會(huì)導(dǎo)致一些數(shù)據(jù)被到處理一部分就會(huì)被終止,而用戶并不知道哪些數(shù)據(jù)被處理,哪些沒有被處理,產(chǎn)生了不完整的“殘疾”數(shù)據(jù),不符合完整性 , 所以被廢棄 。So, forget it!2、使用volatile標(biāo)志位看一個(gè)簡單的例子:首先,實(shí)現(xiàn)一個(gè)Runnable接口,在其中定義volatile標(biāo)志位,在run()方法中使用標(biāo)志位控制程序運(yùn)行public class MyRunnable implements Runnable {//定義退出標(biāo)志,true會(huì)一直執(zhí)行 , false會(huì)退出循環(huán)//使用volatile目的是保證可見性,一處修改了標(biāo)志,處處都要去主存讀取新的值,而不是使用緩存public volatile boolean flag = true;public void run() {System.out.println("第" + Thread.currentThread().getName() + "個(gè)線程創(chuàng)建");try {Thread.sleep(1000L);} catch (InterruptedException e) {e.printStackTrace();}//退出標(biāo)志生效位置while (flag) {}System.out.println("第" + Thread.currentThread().getName() + "個(gè)線程終止");}}然后,在main()方法中創(chuàng)建線程 , 在合適的時(shí)候,修改標(biāo)志位,終止運(yùn)行中的線程 。public class TreadTest {public static void main(String[] arg) throws InterruptedException {MyRunnable runnable = new MyRunnable();//創(chuàng)建3個(gè)線程for (int i = 1; i <= 3; i++) {Thread thread = new Thread(runnable, i + "");thread.start();}//線程休眠Thread.sleep(2000L);System.out.println("——————————————————————————");//修改退出標(biāo)志 , 使線程終止runnable.flag = false;}}最后,運(yùn)行結(jié)果,如下:第1個(gè)線程創(chuàng)建第2個(gè)線程創(chuàng)建第3個(gè)線程創(chuàng)建--------------------------第2個(gè)線程終止第1個(gè)線程終止第3個(gè)線程終止3、使用interrupt()中斷的方式,注意使用interrupt()方法中斷正在運(yùn)行中的線程只會(huì)修改中斷狀態(tài)位,可以通過isInterrupted()判斷 。如果使用interrupt()方法中斷阻塞中的線程,那么就會(huì)拋出InterruptedException異常,可以通過catch捕獲異常 , 然后進(jìn)行處理后終止線程 。有些情況 , 我們不能判斷線程的狀態(tài),所以使用interrupt()方法時(shí)一定要慎重考慮 。
ajax同步警告ajax出現(xiàn)的同步警告是無法避免的 , 其實(shí)是造成主線程鎖死主要還是XMLHttpRequest沒有設(shè)置超時(shí)處理 。jquery ajax異步的執(zhí)行方案:1、添加async:false.即修改為同步,代碼如下:function getAjaxReturn() { var bol=false; $.ajax({ type:"POST", async:false, http://www.cnblogs.com/wlmemail/admin/%22ajax/userexist.aspx", data:"username="+vusername.value, success:function(msg){ if(msg=="ok"){ showtipex(vusername.id,"該用戶名可以使用",false) // return true; bol=true; } else { showtipex(vusername.id,"該用戶已被注冊(cè)",false); vusername.className="bigwrong"; //return false; } } }); return bol; } 2、 通過傳入一個(gè)函數(shù)解決這個(gè)問題,代碼:function getAjaxReturn(success_function,fail_function) { var bol=false; $.ajax({ type:"POST", http://www.cnblogs.com/wlmemail/admin/%22ajax/userexist.aspx", data:"username="+vusername.value, success:function(msg){ if(msg=="ok"){ showtipex(vusername.id,"該用戶名可以使用",false) success_function(msg); } else { showtipex(vusername.id,"該用戶已被注冊(cè)",false); vusername.className="bigwrong"; fail_function(msg); //return false; } } }); function success_function(info) { //do what you want do alert(info); } funciont fail_function(info) { //do what you want do alert(info); }
java中resume() stop()方法已經(jīng)過時(shí)用什么方法代替呢stop
@Deprecated
public final void stop()
已過時(shí) 。該方法具有固有的不安全性 。用 Thread.stop 來終止線程將釋放它已經(jīng)鎖定的所有監(jiān)視器(作為沿堆棧向上傳播的未檢查 ThreadDeath 異常的一個(gè)自然后果) 。如果以前受這些監(jiān)視器保護(hù)的任何對(duì)象都處于一種不一致的狀態(tài),則損壞的對(duì)象將對(duì)其他線程可見,這有可能導(dǎo)致任意的行為 。stop 的許多使用都應(yīng)由只修改某些變量以指示目標(biāo)線程應(yīng)該停止運(yùn)行的代碼來取代 。目標(biāo)線程應(yīng)定期檢查該變量,并且如果該變量指示它要停止運(yùn)行 , 則從其運(yùn)行方法依次返回 。如果目標(biāo)線程等待很長時(shí)間(例如基于一個(gè)條件變量),則應(yīng)使用 interrupt 方法來中斷該等待 。有關(guān)更多信息,請(qǐng)參閱《為何不贊成使用 Thread.stop、Thread.suspend 和 Thread.resume?》 。
強(qiáng)迫線程停止執(zhí)行 。
如果安裝了安全管理器,則以 this 作為其參數(shù)調(diào)用 checkAccess 方法 。這可能引發(fā) SecurityException(在當(dāng)前線程中) 。
如果該線程不同于當(dāng)前線程(即當(dāng)前線程試圖終止除它本身以外的某一線程),則安全管理器的 checkPermission 方法(帶有 RuntimePermission("stopThread") 參數(shù))也會(huì)被調(diào)用 。這會(huì)再次拋出 SecurityException(在當(dāng)前線程中) 。
無論該線程在做些什么,它所代表的線程都被迫異常停止,并拋出一個(gè)新創(chuàng)建的 ThreadDeath 對(duì)象,作為異常 。
停止一個(gè)尚未啟動(dòng)的線程是允許的 。如果最后啟動(dòng)了該線程,它會(huì)立即終止 。
應(yīng)用程序通常不應(yīng)試圖捕獲 ThreadDeath , 除非它必須執(zhí)行某些異常的清除操作(注意,拋出 ThreadDeath 將導(dǎo)致 try 語句的 finally 子句在線程正式終止前執(zhí)行) 。如果 catch 子句捕獲了一個(gè) ThreadDeath 對(duì)象,則重新拋出該對(duì)象很重要,因?yàn)檫@樣該線程才會(huì)真正終止 。
對(duì)其他未捕獲的異常作出反應(yīng)的頂級(jí)錯(cuò)誤處理程序不會(huì)打印輸出消息,或者另外通知應(yīng)用程序未捕獲到的異常是否為 ThreadDeath 的一個(gè)實(shí)例 。
拋出:
SecurityException - 如果當(dāng)前線程不能修改該線程 。
另請(qǐng)參見:
interrupt(), checkAccess(), run(), start(), ThreadDeath, ThreadGroup.uncaughtException(java.lang.Thread, java.lang.Throwable), SecurityManager.checkAccess(Thread), SecurityManager.checkPermission(java.security.Permission)
關(guān)閉線程,最好不要用stop()或destory(),那要用什么方法呢?用sleep() 使當(dāng)前線程停止運(yùn)行,進(jìn)入阻塞態(tài) 。可以指定休眠時(shí)間,一旦指定時(shí)間結(jié)束后,該線程也不一定會(huì)立即被喚醒 。通常是一些別的因素,比如 系統(tǒng)時(shí)間的準(zhǔn)確度不高或者別的線程干擾都有可能影響這個(gè)線程是繼續(xù)阻塞 還是 進(jìn)入運(yùn)行狀態(tài) 。
wait()也可以 和sleep()類似 不過是被喚醒或者等夠了指定的時(shí)間就進(jìn)入運(yùn)行態(tài) 不指定時(shí)間就永遠(yuǎn)等待
deprecated是什么意思checks for usages of deprecated classes and methods in xml在XML的過時(shí)的類和方法使用支票checks for usages of deprecated classes and methods in xml在XML的過時(shí)的類和方法使用支票
C語言的定義問題,關(guān)于__attribute__的用法,望大家?guī)兔獯鸨阌谟洃浐烷喿x程序 , GPIO_T是代表io口時(shí)鐘的結(jié)構(gòu)體,都是結(jié)構(gòu)體,一樣的標(biāo)識(shí),不利于閱讀
__attribute__ ((__packed__)); 怎么用?1. __attribute__是GNUC對(duì)標(biāo)準(zhǔn)C語法的擴(kuò)展,是GNU C的一大特色,可以用于設(shè)置函數(shù)的屬性 , 變量的屬性 , 類型的屬性
packed屬性:使用該屬性可以使得變量或者結(jié)構(gòu)體成員使用最小的對(duì)齊方式,即對(duì)變量是一字節(jié)對(duì)齊,對(duì)域(field)是位對(duì)齊 。
使用該屬性對(duì) struct或者union類型進(jìn)行定義,設(shè)定其類型的每一個(gè)變量的內(nèi)存約束 。當(dāng)用在 enum類型定義時(shí) , 暗示了應(yīng)該使用最小完整的類型。
下面的例子中,x成員變量 使用了該屬性,則其值將緊放置在a的后面:
structtest
{
chara;
intx[2] __attribute__ ((packed));
};
像下面的結(jié)構(gòu)體,結(jié)構(gòu)體的長度,就是各個(gè)變量長度的和
struct student
{
char name[7];
uint32_t id;
char subject[5];
} __attribute__ ((packed));
下面的 例子中 , my-packed-struct類型的變量數(shù)組中的值將會(huì)緊緊的靠在一起,但內(nèi)部 的成員變量s不會(huì)被“pack”,如果希望內(nèi)部的成員變量也被packed,my- unpacked-struct也需要使用packed進(jìn)行相應(yīng)的約束 。
struct my_packed_struct
{
charc;
inti;
structmy_unpacked_structs;
} __attribute__ ( (__packed__) );
2. __packed是進(jìn)行一字節(jié)對(duì)齊 。使用_packed一般會(huì)以降低運(yùn)行性能為代價(jià),由于大多數(shù)cpu處理數(shù)據(jù)在合適的字節(jié)邊界數(shù)的情況下會(huì)更有效,packed的使用會(huì)破壞這種自然的邊界數(shù) 。
typedef struct1
{
char x;
int y;
}struct1;
typedef __packed struct2
{
char x;
int y;
}struct2;在32位的ARM SDT編譯器中
sizeof(struct1)值為8
sizeof(struct2)值為5;
extern volatile unsigned int WREG0 __attribute__((__sfr__,__deprecated__,__unsafe__))這個(gè)問題都這么久了,都沒人答 。我剛剛也遇到了這個(gè)問題 , 我用的是pic24fj128gXXX的,這好像是MPLAB自己帶的針對(duì)于它這款芯片特定的頭文件,這個(gè)頭文件中有好些這種定義 。具體的我也不太清楚,貌似在這個(gè)系列的單片機(jī)上開發(fā) , 這個(gè)頭文件需要了解,也不是非得弄得特別清楚 。我差了些資料 , 就知道第一個(gè)是說明WREG0,__attribute__(sfr)說明了這個(gè)變量是地址,因?yàn)樵诤筮叺奈业拈_發(fā)代碼中沒有涉及到寄存器的地址,可能是它自己的編譯器就這么編譯解釋我們的代碼 , 所以不用太較真 。說了這么多 , 可能你現(xiàn)在已經(jīng)解決了,我也只是說一下我的經(jīng)驗(yàn),好讓后來的人搜到這個(gè)問題之后會(huì)有個(gè)大致的了解 。就這樣了,祝你好運(yùn),節(jié)節(jié)登高!
-Wno-deprecated-declarations編譯選項(xiàng)什么意思?這個(gè)編譯選項(xiàng)是用來關(guān)閉Xcode中關(guān)于廢棄API的警告
比如 你代碼中使用了某個(gè)已經(jīng)被廢棄的API 這是Xcode會(huì)出現(xiàn)一個(gè)警告
這時(shí)你就可以通過這個(gè)編譯選項(xiàng) 關(guān)閉掉這個(gè)警告 。
java中的src文件和jre System library都是什么啊src是源碼目錄,jre是運(yùn)行環(huán)境 , library是java運(yùn)行時(shí)需要的類庫
eclipse使用中碰到一個(gè)疑惑因?yàn)槊總€(gè)開發(fā)工具所使用的jdk不一定相同~所以要選擇你說那個(gè)路徑(環(huán)境變量)~也就是選擇jdk以免版本混淆造成沖突(比如Oracle安裝時(shí)候也會(huì)自動(dòng)安裝上一個(gè)跟自己匹配的jdk版本)
后面那個(gè)提示應(yīng)該就是環(huán)境變量配置不正確造成的 ,再者就是沒有引入需要用的jar包 。
android直接運(yùn)行java文件main方法,報(bào)錯(cuò)1)右鍵入口類(含有Main方法的)==>Run Configurations==>雙擊(Java Application)==>New==>(2)在標(biāo)簽Main里選好相應(yīng)的ProjectName和要運(yùn)行ClassName,(3)選標(biāo)簽ClassPath中的Bootstrap Entries ,再從右邊點(diǎn)Advance==>Add Library==>JRE System Library,完成,然后將JRE System Library 點(diǎn)中再點(diǎn)Up按鈕 , OK了
eclipse中啟動(dòng)tomcat的問題我之前是兩個(gè)項(xiàng)目在一起做(一個(gè)tomcat5,一個(gè)tomcat6),要經(jīng)常要版本轉(zhuǎn)換
這個(gè)要把原來在eclipse環(huán)境中window--屬性--……配置的Tomcat6的版本換為tomcat7 , 再選擇tomcat7的路徑 。
eclipse6.0->windows->Preference->myeclips->server->Tomcat選擇版本->enable 接下來把Tomcat和JDK的路徑配置下(這個(gè)的話不改好像沒不會(huì)報(bào)錯(cuò),但是還有另一個(gè)路徑我忘了,也是改版本,但它的選擇不是以單選的形式,是以下拉的形式,就是你當(dāng)前用的哪個(gè)版本就選哪個(gè)版本了
)
myeclipse 創(chuàng)建怎么沒有src 就一個(gè)JRE 急 !! 在線等 。改成java視圖就可以了
Java中如何通過代碼知道某個(gè)方法或某個(gè)類是否在聲明時(shí)被標(biāo)注為deprecated?給你一個(gè)主函數(shù)參考一下吧,其實(shí)非常的簡單,這個(gè)方法是JAVA TIGER的新特性
public static void main(String[] args) {
try {
System.out.println(String.class.isAnnotationPresent(Deprecated.class));
System.out.println(String.class.getMethod("getBytes",int.class,int.class, byte[].class,int.class).isAnnotationPresent(Deprecated.class));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
例子用的是String類做的示范 。可以自由換成其它類 。
-------------------------------------------------------
這個(gè)有幫助嗎
public static void main(String[] args) {
try {
System.out.println(String.class.getDeclaredMethods().length);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
-----------------------------------------------------
5.0的JDK生成1.4版本的CLASS字節(jié)碼留下了@deprecated , 但是其它的JAVADOC都被丟掉了 。
在不提供這種反射機(jī)制的1.4時(shí)代,我們都非常懷疑讀那個(gè)@deprecated的可能性 。也許你可以試試用讀字節(jié)流的方法判斷@deprecated是否在關(guān)注的地方出現(xiàn) 。
如何正確地使用Java的@deprecated 標(biāo)注起到注釋說明的作用
java的類或方法中通常在方法上或類上注釋的地方有個(gè)@,是什么含義?@呢是Java1.5之后引入的新功能 。
主要作用:
1、起到注釋說明的作用,如@deprecated 表示本方法為過時(shí)的方法 , 建議其他開發(fā)者不要使用;
2、在Java設(shè)計(jì)模式中使用(設(shè)計(jì)框架),減小程序耦合度,如在Spring中,@Inject表示,從配置文件中讀取初始化變量 , 并初始化該對(duì)象或值 。如在EJB3中,使用@Table(name="TABLE")表示,本與本Bean相關(guān)聯(lián)的數(shù)據(jù)庫表名稱為TABLE;
3、其他 , 開發(fā)人員可以自定義標(biāo)注,在調(diào)用中使用getAnnotation();(可能拼寫有誤),從而提高代碼的擴(kuò)展性
如何正確地使用Java的@deprecated 標(biāo)注如何正確地使用Java的@deprecated 標(biāo)注
Java注釋中的@deprecated用于在用Javadoc工具生成文檔的時(shí)候 , 標(biāo)注此類/接口、方法、字段已經(jīng)被廢止 。
java注釋的java注解Annotation(注解)是JDK5.0及以后版本引入的 。它可以用于創(chuàng)建文檔 , 跟蹤代碼中的依賴性,甚至執(zhí)行基本編譯時(shí)檢查 。注解是以‘@注解名’在代碼中存在的,根據(jù)注解參數(shù)的個(gè)數(shù),我們可以將注解分為:標(biāo)記注解、單值注解、完整注解三類 。它們都不會(huì)直接影響到程序的語義,只是作為注解(標(biāo)識(shí))存在,我們可以通過反射機(jī)制編程實(shí)現(xiàn)對(duì)這些元數(shù)據(jù)的訪問 。另外,你可以在編譯時(shí)選擇代碼里的注解是否只存在于源代碼級(jí),或者它也能在class文件中出現(xiàn) 。元數(shù)據(jù)的作用如果要對(duì)于元數(shù)據(jù)的作用進(jìn)行分類,大致可分為三類:編寫文檔:通過代碼里標(biāo)識(shí)的元數(shù)據(jù)生成文檔 。代碼分析:通過代碼里標(biāo)識(shí)的元數(shù)據(jù)對(duì)代碼進(jìn)行分析 。編譯檢查:通過代碼里標(biāo)識(shí)的元數(shù)據(jù)讓編譯器能實(shí)現(xiàn)基本的編譯檢查 @OverrideJava代碼packagecom.iwtxokhtd.annotation;/*** 測(cè)試Override注解*@authorAdministrator**/publicclassOverrideDemoTest {//@OverridepublicString tostring(){return測(cè)試注解;}}@Deprecated的作用是對(duì)不應(yīng)該在使用的方法添加注解,當(dāng)編程人員使用這些方法時(shí),將會(huì)在編譯時(shí)顯示提示信息,它與javadoc里的@deprecated標(biāo)記有相同的功能 , 準(zhǔn)確的說,它還不如javadoc @deprecated,因?yàn)樗恢С謪?shù),使用@Deprecated的示例代碼示例如下:Java代碼packagecom.iwtxokhtd.annotation;/*** 測(cè)試Deprecated注解*@authorAdministrator**/publicclassDeprecatedDemoTest {publicstaticvoidmain(String[] args) {//使用DeprecatedClass里聲明被過時(shí)的方法DeprecatedClass.DeprecatedMethod();}}classDeprecatedClass{@DeprecatedpublicstaticvoidDeprecatedMethod() {}}@SuppressWarnings,其參數(shù)有:deprecation,使用了過時(shí)的類或方法時(shí)的警告unchecked , 執(zhí)行了未檢查的轉(zhuǎn)換時(shí)的警告fallthrough , 當(dāng) Switch 程序塊直接通往下一種情況而沒有 Break 時(shí)的警告path,在類路徑、源文件路徑等中有不存在的路徑時(shí)的警告serial,當(dāng)在可序列化的類上缺少serialVersionUID 定義時(shí)的警告finally,任何 finally 子句不能正常完成時(shí)的警告all , 關(guān)于以上所有情況的警告 packagecom.iwtxokhtd.annotation;importjava.util.ArrayList;importjava.util.List;publicclassSuppressWarningsDemoTest {publicstaticListlist=newArrayList();@SuppressWarnings(unchecked)publicvoidadd(String data){list.add(data);
ecshop中Deprecated: preg_replace(): 報(bào)錯(cuò)怎么辦?------解決方案--------------------
preg_replace_callback($pattern, function($r) { return 與$r相關(guān)的值; }, $subject)
你應(yīng)該給出 cls_template.php 第496行的代碼
這樣才能給你準(zhǔn)確的寫法
------解決方案--------------------
那就是
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
如果還有其他的地方報(bào)這樣的錯(cuò),就參照這個(gè)改.
你試試吧!
ecshop安裝后頁面出現(xiàn)代碼這是怎么回事???登錄ftp , 找到根目錄下htdocs,將data下的config.php和install.lock刪除 , 重新安裝一下ecshop系統(tǒng) , 然后進(jìn)入后臺(tái)管理--數(shù)據(jù)庫管理--數(shù)據(jù)備份 , 選擇恢復(fù)備份,清除緩存即可 。
ecshop里關(guān)于使用了高版本php產(chǎn)生的一個(gè)問題 求助$out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";
直接改成這樣試試
本地安裝ecshop提示錯(cuò)誤!怎么解決PHP5.5以后含有/e 的preg_replace被preg_replace_callback替代了
function eregi is deprecated in報(bào)錯(cuò)怎么解決php版本升級(jí)后,運(yùn)行項(xiàng)目 。報(bào)Function eregi() is deprecated錯(cuò)誤!
在項(xiàng)目里找到ereg()或者eregi()使用此函數(shù)的位置;
查找ereg()或者eregi()函數(shù) , 然后全部替換為preg_match()函數(shù) 。
刷新當(dāng)前頁面,問題解決?。?
打開PHPmyadmin出現(xiàn)這個(gè)錯(cuò)誤要在IIS6上使用高版本PHP,必須安裝fastCGI擴(kuò)展
Microsoft FastCGI Extension for IIS 5.1 and 6.0
然后設(shè)定一下php.ini中的CGI and FastCGI參數(shù):
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect =0
cgi.rfc2616_headers=1
望采納 Thx
Function eregi() is deprecated in /opt/lampp/htdocs/lib.php on line 13eregi改preg_match
給服務(wù)器上傳了一個(gè)PHP源碼 數(shù)據(jù)庫都鏈接上了,但是有一些報(bào)錯(cuò)的地方,請(qǐng)高手幫忙看下這個(gè)是版本的問題,php5.3以上的版本,已經(jīng)棄用ereg_replace()和eregi()函數(shù)了,換成preg_replace() 和preg_match() 。你可以換函數(shù),或者在這些函數(shù)前面加@ 。因?yàn)檫@些都是提醒級(jí)錯(cuò)誤 。
例如:@ereg_replace/@eregi
php網(wǎng)站安裝好以后出現(xiàn)這種情況PHP5.3x后的版本不再支持ereg和eregi
ereg()使用 preg_match() 替代
ereg_replace()使用 preg_replace() 替代
eregi()使用 preg_match() 配合 ‘i’ 修正符替代
eregi_replace()使用 preg_replace() 配合 ‘i’ 修正符替代
用Eclipse編Java提示The method show() from the type Window is deprecated,并且窗口沒有出現(xiàn)這個(gè)方法已經(jīng)不建議被使用了,使用另外的方式去實(shí)現(xiàn) 。
java中 The method getHours() from the type Date is deprecated 代碼怎么改?過時(shí)的方法 , 不影響 , 可以繼續(xù)使用,可能會(huì)在未來版本刪除 。如果看著不爽,可以在其方法上面加上@SuppressWarnings("deprecation")如:public class $ {@SuppressWarnings("deprecation")public static void main(String[] args) {Date now = new Date();System.out.println(now.getSeconds());}}
怎么樣解決The method getYear() from the type Date is deprecated【deprecated】那些方法都不推薦使用了,所以顯示黃線 , 這樣可以實(shí)現(xiàn)你想要的,你看下吧 , 希望對(duì)你有幫助
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
int currenYear = calendar.get(Calendar.YEAR);
calendar.set(Calendar.YEAR, currenYear + 2);
java.sql.Date newDate = new java.sql.Date(calendar.getTimeInMillis());
線程stop的時(shí)分,顯示The method stop is deprecated會(huì)有什么后果線程stop的時(shí)候,顯示The method stop() is deprecated會(huì)有什么后果?如下代碼所示,在用stop結(jié)束線程時(shí),stop被橫線劃掉了 。而且報(bào)這個(gè)警告The method stop() from the type Thread is deprecated 。會(huì)對(duì)線程的執(zhí)行有影響嗎?Java codetran_input = new Thread(new ActTranIn()); tran_input.start(); /**執(zhí)行SSLSocket接受數(shù)據(jù)的代碼 。。。省略**/ tran_input.stop(); class ActTranIn implements Runnable { public void run() { /**執(zhí)行SSLSocket發(fā)送數(shù)據(jù)的代碼 。。。省略**/ } }會(huì)執(zhí)行的 你可以不用管警告 Thread.stop()有bug的,有時(shí)候拋出運(yùn)行時(shí)異常 。所以不見意用這個(gè)方法 。
the type query is deprecated怎么解決出這個(gè)提示的地方有寫解決辦法呀. android.support.v7.app.ActionBarActivity is deprecated; use AppCompatActivity instead 意思是 ActionBarActivity 在最新版本的support v7包里面已經(jīng)不建議使用,建議用 AppCompatActivity
如何正確地使用Java的@deprecated 標(biāo)注Rule #1: do Javadoc how not to
每當(dāng)你棄用某方法時(shí),創(chuàng)建JavaDoc告訴其他程序員如何不再使用這個(gè)方法 。不要只說“這個(gè)方法廢棄了,不要用它” 。因?yàn)檫@就是廢棄標(biāo)注和JavaDoc中@deprecated的字面意義,完全沒有必要再重復(fù)一遍 。Java開發(fā)人員作為目標(biāo)受眾,都知道deprecation的意思 。
命名新的方法,取代舊有的 。(使用@link標(biāo)注!)這可能還不夠,新的方法對(duì)應(yīng)的文檔將解釋如何使用它 。不要在JavaDoc中重復(fù)(其字面意義),文檔也應(yīng)遵從DRY原則 。另一方面你可能想要描述怎樣替換掉舊方法的調(diào)用 , 你可以就重構(gòu)的細(xì)節(jié)給出提示 。
Rule #2: do not Javadoc how to
移除過時(shí)的JavaDoc文檔 。有些人可能爭辯:維護(hù)遺留代碼的用戶可能還會(huì)需要這些文檔 。事實(shí)上,他們使用的是舊版本庫中的舊版本方法 。舊版本的文檔仍舊存在那里,像被刻在石頭上(更確切的說是刻在資源倉庫的某個(gè)版本上) 。含有被廢棄掉的方法的實(shí)際版本不應(yīng)包含過時(shí)的描述文檔,那會(huì)鼓勵(lì)程序員去繼續(xù)使用 。對(duì)于廢棄的方法 , 只有一種用法:不去用 。JavaDoc應(yīng)該被實(shí)時(shí)描述,如同rule#1所述 。
Rule #3: 不要在JavaDoc中解釋
不要在JavaDoc中解釋為什么方法被廢棄了 。你是一個(gè)可靠的的開發(fā),這是你的決定,你的選擇,其他人只能忍著 。如果愿意,可以寫一篇博客記錄這次調(diào)整的決策背景 。這可能有幫助,但它不應(yīng)被寫在JavaDoc中 。
JavaDoc的Deprecated API專用來講解如何不再使用 。
重點(diǎn)是如何(how) 。而不是“為什么不再使用它(why)” 。
Rule #4: do deprecate
如果你覺得需要棄用一方法 , 那就去做吧!如果你害怕你的用戶,或不想因你廢棄掉一些方法導(dǎo)致你用戶體驗(yàn)更加痛苦,這個(gè)決定將讓你自己痛苦 。盡你所能去讓API維持長久的穩(wěn)定 。但如果有需要被廢棄的:立刻扔掉它 。不要因“為何當(dāng)初設(shè)計(jì)API時(shí)沒有考慮到未來的變動(dòng)”而感到愧疚 。沒有人能完美的預(yù)見未來 。畢竟 , 如果你知道未來,生活就無趣了 。
java代碼疑問 , eclips中講代碼用刪除線劃掉并提示deprecated是什么情況?您好,提問者:意思是說此方法已過時(shí) , 過時(shí)的原因就是有API的類替代了次方法 。提示:可以正常使用的,就是一個(gè)提示而已 。
為什么JAVA項(xiàng)目代碼中在一個(gè)類中只對(duì)方法聲明,在另一個(gè)類中才定義方法,這么做有什么好處么你說的是接口吧,接口就像生活中的協(xié)議一樣,比如定義人 , 這個(gè)接口,然后里面聲明了人,有名字,兩只手 , 兩只腳,然后所有的實(shí)現(xiàn)類都必須實(shí)現(xiàn)這些方法 。也就是說只要屬于人(這個(gè)接口)都必須有名字,兩只手,兩只腳 。
這就像一種規(guī)范一樣 , 之后所有的實(shí)現(xiàn)類都可以有自己的擴(kuò)展,但是必須實(shí)現(xiàn)人這個(gè)幾口類聲明的方法 。
在你以后調(diào)用的時(shí)候 , 可以直接調(diào)用接口,而不必關(guān)心實(shí)現(xiàn)類的具體實(shí)現(xiàn) 。比如數(shù)據(jù)庫的增刪改查 , 你定義了接口,然后由不同的實(shí)現(xiàn)類去實(shí)現(xiàn) 。你在servlet 或者aciton中調(diào)用的時(shí)候直接調(diào)用接口 , 然后你可以用不同的實(shí)現(xiàn)類實(shí)現(xiàn)不同數(shù)據(jù)庫的增刪改查等方法 。
這個(gè)時(shí)候你的系統(tǒng)就可以實(shí)現(xiàn)不同數(shù)據(jù)庫的切換了 。
對(duì)了接口還有一個(gè)好處就是多繼承 。就是一個(gè)實(shí)現(xiàn)類可以繼承多個(gè)接口 。這樣你的實(shí)現(xiàn)類又可以完成多個(gè)協(xié)議(接口聲明)了 。
---------------------
上面是我個(gè)人的一些理解,我看到樓上的說的也不錯(cuò) 。
希望我的理解可以幫到樓主 。
ps.建議樓主看一下專業(yè)的書籍 。網(wǎng)上的回答畢竟還是不系統(tǒng)的 。
Java 代碼中 @ 符號(hào)是什么意思?annotation 。
Annotation,是Java5的新特性,下面是Sun的Tutorial的描述,因?yàn)槭怯⑽模@里我翻譯下,希望能夠比較清晰的描述一下Annotation的語法以及思想 。Annotation:Release 5.0 of the JDK introduced a metadata facility called annotations. Annotations provide data about a program that is not part of the program, such as naming the author of a piece of code or instructing the compiler to suppress specific errors. An annotation has no effect on how the code performs. Annotations use the form @annotation and may be applied to a program's declarations: its classes, fields, methods, and so on. The annotation appears first and often (by convention) on its own line, and may include optional arguments: JDK5引入了Metedata(元數(shù)據(jù))很容易的就能夠調(diào)用Annotations.Annotations提供一些本來不屬于程序的數(shù)據(jù),比如:一段代碼的作者或者告訴編譯器禁止一些特殊的錯(cuò)誤 。An annotation 對(duì)代碼的執(zhí)行沒有什么影響 。Annotations使用@annotation的形勢(shì)應(yīng)用于代碼:類(class),屬性(field),方法(method)等等 。一個(gè)Annotation出現(xiàn)在上面提到的開始位置,而且一般只有一行,也可以包含有任意的參數(shù) 。@Author("MyName")class myClass() { }
or @SuppressWarnings("unchecked")void MyMethod() { }
Defining your own annotation is an advanced technique that won't be described here, but there are three built-in annotations that every Java programmer should know: @Deprecated, @Override, and @SuppressWarnings. The following example illustrates all three annotation types, applied to methods:
定義自己的Annotation是一個(gè)比較高級(jí)的技巧 , 這里我們不做討論,這里我們僅僅討論每一個(gè)Java programer都應(yīng)該知道的內(nèi)置的annotations:@Deprecated, @Override, and @SuppressWarnings 。下面的程序闡述了這三種annotation如何應(yīng)用于methods 。import java.util.List;
class Food {}
class Hay extends Food {}
class Animal {
Food getPreferredFood() {
return null; } /** * @deprecated document why the method was deprecated */
@Deprecated
static void deprecatedMethod() { }
}
class Horse extends Animal {
Horse() {
return;
}
@Override
Hay getPreferredFood() {
return new Hay();
}
@SuppressWarnings("deprecation")
void useDeprecatedMethod() {
Animal.deprecateMethod(); //deprecation warning - suppressed }}
}
}
@DeprecatedThe @Deprecated annotation indicates that the marked method should no longer be used. The compiler generates a warning whenever a program uses a deprecated method, class, or variable. When an element is deprecated, it should be documented using the corresponding @deprecated tag, as shown in the preceding example. Notice that the tag starts with a lowercase "d" and the annotation starts with an uppercase "D". In general, you should avoid using deprecated methods — consult the documentation to see what to use instead.
@Deprecated@Deprecated annotation標(biāo)注一個(gè)method不再被使用 。編譯器在一個(gè)program(程序?)使用了不贊成的方法,類,變量的時(shí)候會(huì)產(chǎn)生警告(warning) 。如果一個(gè)元素(element:method, class, or variable)不贊成被使用 , 應(yīng)該像前面的例子里使用相應(yīng)的@deprecated 標(biāo)簽,并且注意標(biāo)簽的首字母是小寫的"d",而annotation時(shí)大寫的"D" 。一般情況下,我們應(yīng)該避免使用不贊成使用的方法(deprecated methods),而應(yīng)該考慮替代的方法 。
@OverrideThe @Override annotation informs the compiler that the element is meant to override an element declared in a superclass. In the preceding example, the override annotation is used to indicate that the getPreferredFood method in the Horse class overrides the same method in the Animal class. If a method marked with @Override fails to override a method in one of its superclasses, the compiler generates an error. While it's not required to use this annotation when overriding a method, it can be useful to call the fact out explicitly, especially when the method returns a subtype of the return type of the overridden method. This practice, called covariant return types, is used in the previous example: Animal.getPreferredFood returns a Food instance. Horse.getPreferredFood (Horse is a subclass of Animal) returns an instance of Hay (a subclass of Food). For more information, see Overriding and Hiding Methods.
@Override@Override annotation 告訴編譯器當(dāng)前元素是重寫(override)自父類的一個(gè)元素 。在前面的例子中 , override annotation用來說明Horse類中的getPreferredFood這個(gè)方法重寫(override)自Animal類中相同的方法 。如果一個(gè)方法被標(biāo)注了@Override,但是其父類中沒有這個(gè)方法時(shí),編譯器將會(huì)報(bào)錯(cuò) 。但是并不是說我們一定要使用這個(gè)annotation,但是它能夠很明顯的給出實(shí)際行為,尤其是在方法返回一個(gè)被重寫的方法返回類型的子類型的時(shí)候 。上面的例子中,Animal.getPreferredFood 返回一個(gè) Food實(shí)例 , Horse.getPreferredFood 返回一個(gè)Hay實(shí)例,這里Horse是Animal的子類,Hay是Food的子類 。
@SuppressWarningsThe @SuppressWarnings annotation tells the compiler to suppress specific warnings that it would otherwise generate. In the previous example, the useDeprecatedMethod calls a deprecated method of Animal. Normally, the compiler generates a warning but, in this case, it is suppressed. Every compiler warning belongs to a category. The Java Language Specification lists two categories: "deprecation" and "unchecked". The "unchecked" warning can occur when interfacing with legacy code written before the advent of generics. To suppress more than one category of warnings, use the following syntax: @SuppressWarnings@SuppressWarnings annotation 告訴編譯器禁止別的元素產(chǎn)生的特殊的警告(warnings),在前面的例子里,useDeprecatedMethod調(diào)用了Animal的不贊成使用的一個(gè)方法 。一般情況下,編譯器會(huì)給出一個(gè)警告(warning),但是在這種情況下,不會(huì)產(chǎn)生這個(gè)警告,也就是說被suppress 。每個(gè)編譯器的警告都屬于一個(gè)類型 。Java Language Specification列出了兩種類型:"deprecation" 和 "unchecked" 。"unchecked" warning 發(fā)生在使用非generic的舊代碼交互的generic collection類時(shí) 。為了禁止不止一種的警告時(shí),使用下面的語法:@SuppressWarnings({"unchecked", "deprecation"})
如何使php頁面中不再出現(xiàn)NOTICE和DEPRECATED的錯(cuò)誤提示<?php
//文件頭部設(shè)置
error_reporting(E_ALL^E_NOTICE);
?>
//或者在php.ini配置文件中修改:
error_reporting=E_ALL & ~E_NOTICE
php報(bào)錯(cuò): Deprecated: preg_replace(): The /e modifier is deprecated...這個(gè)錯(cuò)誤是這樣的情況,我們來一起分析下:從錯(cuò)誤的信息來看,貌似說是用了不推薦的函數(shù),也就是過時(shí)的函數(shù),可是事實(shí)是這樣嗎?為了一探究竟,我查看了PHP手冊(cè)的preg_replace()函數(shù)介紹,并沒有說這個(gè)函數(shù)過時(shí)了或不推薦了,那么,問題出在哪了呢?繼續(xù)往下看,結(jié)果在手冊(cè)中看到這樣的消息:錯(cuò)誤/異常當(dāng)傳入 "\e" 修飾符的時(shí)候,會(huì)產(chǎn)生一個(gè) E_DEPRECATED 級(jí)別的錯(cuò)誤 。好像明白點(diǎn)了 , 是因?yàn)橛昧恕?#92;e”修飾符,那之前使用為什么沒有出錯(cuò)呢?繼續(xù)往下看,看到版本更新 , 一下恍然大悟,原來如此:版本說明5.5.0/e 修飾符已經(jīng)被棄用了 。使用 preg_replace_callback() 代替 。參見文檔中 PREG_REPLACE_EVAL 關(guān)于安全風(fēng)險(xiǎn)的更多信息這下問題很清楚了,5.5.0以后的版本,/e的參數(shù)被廢棄了,也就是不推薦了,官方建議使用preg_replace_callback()函數(shù)代替 。廢話有點(diǎn)多了,好,下面進(jìn)入正題 。好了,問題找到了 , 那就看看如何解決,官方推薦使用preg_replace_callback(),那還客氣啥 , 用就是了 。可是,問題又來了,怎么用呢?繼續(xù)看手冊(cè),看preg_replace_callback()的手冊(cè),說的很明白 。其實(shí)這個(gè)函數(shù)和preg_replace()唯一的區(qū)別就是 , preg_replace()將匹配到的串直接替換,而preg_replace_callback()是將匹配到的串帶入到回調(diào)函數(shù)中做處理后然后替換,就是這么任性,靈活度一下加大了,但是效率肯定不如preg_replace(),所以,如果僅僅是簡單替換,還是用preg_replace()的好 , 如果要對(duì)匹配到的串進(jìn)行特殊處理,那就非preg_replace_callback()莫屬了,親!好了,就到這里了,為了升級(jí)知道賬號(hào),所以廢話有點(diǎn)多了 。。。。。望采納啊 。
struts升級(jí)到2.3.14.2版本 報(bào)ActionContextCleanUp <<< is deprecated! Please use the new filters警告更改web.xml文件:struts2Filterorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class處,改了就好了 。
PHP中如何開啟錯(cuò)誤提示輸出?開啟步驟如下:
1. 打開php.ini文件 。
以u(píng)buntu為例 , 這個(gè)文件在: /etc/php5/apache2 目錄下為例 。
2. 搜索并修改下行,把Off值改成On
display_errors = Off
3. 搜索下行
error_reporting = E_ALL & ~E_NOTICE
或者搜索:
error_reporting = E_ALL & ~E_DEPRECATED
修改為
error_reporting = E_ALL | E_STRICT
4. 修改Apache的 httpd.conf,
以Ubuntu 為例,這個(gè)文件在:/etc/apache2/ 目錄下 , 這是一個(gè)空白文件 。
添加以下兩行:
php_flag display_errors on
php_value error_reporting 2039
5. 重啟Apache,就OK了 。
重啟命令: :sudo /etc/init.d/apache2 restart.
求助Deprecated,關(guān)于php的具體代碼如下:<?php$ch = curl_init();$timeout = 5;curl_setopt ($ch, CURLOPT_URL, '');curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);$file_contents = curl_exec($ch);curl_close($ch);echo $file_contents;?>PHP 獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法 。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁 。用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比 , PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用)文檔中去執(zhí)行 , 執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快 。
新手求助PHP的一個(gè)簡單問題PHP Deprecated:Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
原因:你的配置文件ming.ini中配置有問題:提示的意思是說你這個(gè)文件中的注釋不能用#開頭 , 這種注釋方式已經(jīng)過時(shí)了··,所以你要檢查這個(gè)ini文件了,另外,如果我記得的沒錯(cuò)的話 , ini格式的文件的注釋應(yīng)該是";"分號(hào)開頭的 。
PHP Notice:Use of undefined constant myBook - assumed 'myBook' in /var/www/temp.php on line 19
PHP Stack trace:
PHP1. {main}() /var/www/temp.php:0
這個(gè)是應(yīng)該你在調(diào)用的時(shí)候變量符號(hào)丟掉了,PHP中的變量的調(diào)用需要用變量符號(hào)$:
而且,在PHP中類對(duì)象訪問方法是用->的方式訪問 , 所以做如下更改:
$myBook = new book ;
myBook.set_price(80) ;// -> 應(yīng)該是$myBook->set_price(80) ;
myBook.set_title("我的Book") ; // -> 應(yīng)該是$myBook->set_title("我的Book") ;
myBook.get_price ( ) ; //->應(yīng)該是 $myBook->get_price ( ) ;
myBook.get_title ( ) ; // ->應(yīng)該是 $myBook->get_title();
關(guān)于PHP的問題在php.ini 里把錯(cuò)誤級(jí)別改成 all_error^notice
大概就是這樣的
意思為輸出所有錯(cuò)誤,但不顯示通知級(jí)別的 。
Notice代表通知級(jí)別的問題 但是不是錯(cuò)誤程序,屏蔽notice通知程序可以正常運(yùn)行 。
我一般寫的時(shí)候都會(huì)這樣
關(guān)于PHP版本比較,和錯(cuò)誤報(bào)告 。。error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
報(bào)告除了通知錯(cuò)誤(E_NOTICE )還有過時(shí)函數(shù)錯(cuò)誤(E_DEPRECATED)之外的所有錯(cuò)誤
error_reporting(E_ALL & ~E_NOTICE);
報(bào)告除了通知錯(cuò)誤(E_NOTICE )之外的所有錯(cuò)誤
代碼的意思就是說 如果php版本是5.3以上就關(guān)閉函數(shù)過時(shí)錯(cuò)誤 , 5.3以下就不關(guān)閉 。
為什么要這么處理呢?
因?yàn)樵诎姹旧?jí)到5.3之后之前版本的一些函數(shù)就不推薦使用,使用的話如果不關(guān)閉的錯(cuò)誤提示的話就會(huì)提示函數(shù)過時(shí)錯(cuò)誤 。。。
- 兄弟戰(zhàn)爭游戲
- gigabitethernet
- 打印機(jī)怎么連接電腦
- graphite
- the是什么意思
- only是什么意思
- thewolf
- thermalright
- brother打印機(jī)驅(qū)動(dòng)
- 7360驅(qū)動(dòng)
