java修改參數
① java中重寫的方法參數可以重新指定
我想你還沒有分清Java中重載與重寫的區別:
首先我們來講講:重載(Overloading)
(1) 方法重載是讓類以統一的方式處理不同類型數據的一種手段。多個同名函數同時存在,具有不同的參數個數/類型。
重載Overloading是一個類中多態性的一種表現。
(2) Java的方法重載,就是在類中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。
調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法, 這就是多態性。
(3) 重載的時候,方法名要一樣,但是參數類型和個數不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數的區分標准。
然後我們再來談談 重寫(Overriding)
(1) 父類與子類之間的多態性,對父類的函數進行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。
但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。
方法重寫又稱方法覆蓋。
(2)若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數表,則新方法將覆蓋原有的方法。
如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。
(3)子類函數的訪問修飾許可權不能少於父類的。
所以Java中重寫的方法參數是不能重新指定的,那樣就是變成重載了。
② Java中如何改變參數的值(實現按址傳遞)
你始終都沒有改變a,b所指向的地址 當然值就不變了
③ 請問java中創建對象的參數怎麼設成讓用戶輸入的數值去修改
Scanner sc = new Scanner(System.in);
System.out.println("請輸入:");
int c = sc.nextInt();
把c變數作為參數傳到對回象中答去
④ 修改string數組內的參數 java
廢話不說了,看代碼吧:
public static void main(String[] args) {
回String[] strArr = {"ABCD","ACBD","ACCDDD","BDCA"};
for(int i=0; i<strArr.length;i++){
if(strArr[i].startsWith("AC")){
strArr[i] = strArr[i].substring(2);
}
}
//輸出結果答
for(int i=0;i<strArr.length;i++){
System.out.println(strArr[i]);
}
}
⑤ java修改請求參數的值
java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap。網上查了一些資料,解決方案是使用Wrapper,重寫HttpServletRequestWrapper,如下:
Java代碼
package com.gdcn.bpaf.security.yale;
import java.util.Enumeration;
import java.util.Map;
import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
@SuppressWarnings("unchecked")
public class ParameterRequestWrapper extends HttpServletRequestWrapper {
private Map params;
public ParameterRequestWrapper(HttpServletRequest request, Map newParams) {
super(request);
this.params = newParams;
}
public Map getParameterMap() {
return params;
}
public Enumeration getParameterNames() {
Vector l = new Vector(params.keySet());
return l.elements();
⑥ java中的main方法可以改變參數或傳參嗎如何實現
不能。參數只能啟動的時候傳入。
⑦ java中有沒有這么一種方法,可以動態的改變參數類型及其中的的代碼。
你可以把這些類,都繼承一個類,然後把這些相同的地方寫在繼承的類裡面
⑧ Java 如何修改args[]的參數
在concls命令行中輸入參數就可以了,如果不行可以在cmd命令行中輸入參數在cmd進行調用
⑨ Java中如何改變參數的值(實現按址傳遞)
java方法中傳值和傳引用的問題是個基本問題,但是也有很多人一時弄不清。你的題目本身就有歧義,無法直接針對題目作答(因為java不存在類似c或c++那樣的傳址)。我從頭講起:
(一)基本數據類型:傳值,方法不會改變實參的值。
(二)對象類型參數:傳引用,方法體內改變形參引用,不會改變實參的引用,但有可能改變實參對象的屬性值。例如
public class TestFun4 {
public static void testStringBuffer(StringBuffer sb){
sb.append("java");//改變了實參的內容
}
public static void main(String[] args) {
StringBuffer sb= new StringBuffer("my ");
new TestFun4().testStringBuffer(sb);
System.out.println("sb="+sb.toString());//內容變化了
}
}
⑩ Java Web 怎樣修改request的參數值
用過濾器就可以實現,現在web.xml文件中配置好過濾器,自定義個一個過濾器,實現Filter介面,在doFilter中實現自己的過濾邏輯,我這里有個設置所有請求中的字元編碼,你可以參考一下:
Java code
web.xml配置如下:
<filter>
<!--過濾器名稱,隨便定義-->
<filter-name>UrlFilter</filter-name>
<!--filter-class指向自定義的過濾器,完整的包名+類名-->
<filter-class>
com.wgh.common.SetCharacterEncodingFilter
</filter-class>
<!--過濾器中的默認參數,默認的字元編碼是GBK-->
<init-param>
<param-name>defaultEncoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<!--filter和filter-mapping是成對出現的-->
<filter-mapping>
<!--過濾器名稱,一定要和上面的一樣,-->
<filter-name>UrlFilter</filter-name>
<!--表示攔截所有的請求-->
<url-pattern>/*</url-pattern>
</filter-mapping>
SetCharacterEncodingFilter過濾器類:
packagecom.wgh.common;
importjava.io.IOException;
importjava.text.SimpleDateFormat;
importjava.util.Arrays;
importjava.util.Enumeration;
importjava.util.List;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
{privatestaticStringlog="ksURL_log";
privatestaticStringweb_xml_url;
=null;
=null;
protectedbooleanignore=true;
publicvoiddestroy(){
this.defaultEncoding=null;
this.filterConfig=null;
this.web_xml_url=null;
}
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException{
if(ignore||(request.getCharacterEncoding()==null)){
StringdefaultEncoding=selectEncoding(request);
HttpServletRequestreq=(HttpServletRequest)request;
if(defaultEncoding!=null){
Stringuri=req.getRequestURI();
Stringurl_suffix=uri.substring(uri.lastIndexOf("/")+1);
request.setCharacterEncoding(defaultEncoding);
}
}
}
publicvoidinit(FilterConfigfilterConfig)throwsServletException{
this.filterConfig=filterConfig;
this.defaultEncoding=filterConfig.getInitParameter("defaultEncoding");
Stringvalue=filterConfig.getInitParameter("ignore");
if(value==null)
this.ignore=true;
elseif(value.equalsIgnoreCase("true"))
this.ignore=true;
elseif(value.equalsIgnoreCase("yes"))
this.ignore=true;
else
this.ignore=false;
}
protectedStringselectEncoding(ServletRequestrequest){
return(this.defaultEncoding);
}
}