рд╕реАрдбреАрдХреЗ рдмрдирд╛рдо рдлрд╛рдЗрдВрдбрдмрдЧреНрд╕

рдореИрдВ рд╣рдореЗрд╢рд╛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдкреЛрд╕реНрдЯ рдкрдврд╝рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрдЧ рдХреА рддрд▓рд╛рд╢ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рднреА, рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрд╕реА рдкреЛрд╕реНрдЯ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдЕрджреНрднреБрдд рдореБрдХреНрдд рд╕реНрдерд┐рд░ FindBugs рдЬрд╛рд╡рд╛ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИред рд╣реИрдмрд░ рдкрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдХрдо рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдРрд╕реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЦрд░рдЧреЛрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╡реНрдпрд╛рдкрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЛрдб рдХреЛ рдЪрд╛рдЯ рд▓реЗрдВред рдореИрдВрдиреЗ рдХреЗрдорд┐рд╕реНрдЯреНрд░реА рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рд╕рдВрд╕реНрдХрд░рдг 1.4.19) рдЪреБрдирд╛, рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рдореИрдВрдиреЗ FindBugs рдХреЛ рдПрдХ рдЧреНрд░рд╣рдг рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрджрдд рд╣реИред



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде FindBugs рдиреЗ 338 рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рдмреЗрд╢рдХ, рдореИрдВ рдЙрди рд╕рднреА рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЛрдЧреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред

1. рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕

рд╡рд░реНрдЧ рдореЗрдВ org.openscience.cdk.math.RandomNumbersTool:
public static int randomInt(int lo, int hi) { return (Math.abs(random.nextInt()) % (hi - lo + 1)) + lo; } 
Random.nextInt () рд╡рд┐рдзрд┐ рдЗрдВрдЯ рдореЗрдВ рдорд╛рдиреНрдп рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИред Math.abs рдкрджреНрдзрддрд┐ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдореЙрдбреНрдпреВрд▓ рдорд┐рд▓рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ Math.abs Integer.MIN_VALUE рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рдВрдЦреНрдпрд╛ рдЗрдВрдЯ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░реИрдВрдбрдо.рдиреЗрдХреНрд╕реНрдЯрдЗрдВрдЯ () рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ (рд▓рдЧрднрдЧ рд╣рд░ 4 рдмрд┐рд▓рд┐рдпрди) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддреА рд╣реИ, рдлрд┐рд░ рдкреВрд░реА рд╡рд┐рдзрд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреАред

2. рдЕрд╢рдХреНрдд рдХреЗ рд▓рд┐рдП BufferedReader.readLine () рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ

рдпрд╣ рдХрдИ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд░реВрдк рдореЗрдВ (org.openscience.cdk.io.CIFReader):
 private void skipUntilEmptyOrCommentLine(String line) throws IOException { // skip everything until empty line, or comment line while (line != null && line.length() > 0 && line.charAt(0) != '#') { line = input.readLine().trim(); } } 
рд░реЗрдбреА () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рддрддреНрдкрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд░реАрдбрд▓рд╛рдЗрди () рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдПрдХ рд╡рд┐рдХреГрдд рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ NullPointerException рдХреЛ рдлреЗрдВрдХ рджреЗрдЧреАред

3. рдкреНрд░рдпреБрдХреНрдд рдФрд░ рдХреЗ рдмрдЬрд╛рдп &&

рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рддреБрдЪреНрдЫ рддреНрд░реБрдЯрд┐ (org.openscience.cdk.atomtype.CDKAtomTypeMatcher):
 if (atom.getFormalCharge() != null & atom.getFormalCharge().intValue() == 1) {...} 

рдпрджрд┐ рдкрд╣рд▓рд╛ рдЪреЗрдХ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк NullPointerException рд╣реЛрдЧрд╛ред

4. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛, рдкреВрд░реНрдгрд╛рдВрдХ рдпрд╛ рдбрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ == рджреНрд╡рд╛рд░рд╛

рдРрд╕рд╛ рдХрдИ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ (org.openscience.cdk.AtomType.compare):
 return (getAtomTypeName() == type.getAtomTypeName()) && (maxBondOrder == type.maxBondOrder) && (bondOrderSum == type.bondOrderSum); 
getAtomTypeName () рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ bonOrderSum рдЯрд╛рдЗрдк рдбрдмрд▓ рдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдЖрд╡реЗрджрди рддрд░реНрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдмрд░рд╛рдмрд░ рдФрд░ рддреБрд▓рдирд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреАред

рдЬрдм рддрдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рди рд╣реЛ, рддрдм рддрдХ рдЗрдВрдЯреЗрдЧрд░, рдбрдмрд▓ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

5. рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпрд╣ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рд╕реНрдерд┐рд░ рд╣реИрдВ

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реИрдВ рдЬреЛ рдПрдХ рдирдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (net.sf.cdk.tools.MakeJavafilesFiles.readBlackList):
 while (line != null) { line.trim(); if (line.length() > 0) blacklist.add(line); line = reader.readLine(); } 
рдХреЙрд▓рд┐рдВрдЧ рд▓рд╛рдЗрдиред рдЯреНрд░рд┐рдо () рдмреЗрдХрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рд╛рдЗрди рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд╛рдЗрди рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдЦрдХ рдХреЗ рдорди рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЗрди = line.trim () рдереАред рдЗрд╕реА рддрд░рд╣, String.substring рдХреЙрд▓ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╣реЗрдЬреЗ рдмрд┐рдирд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

6. рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛

if( atom.equals("H") ) рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдЕрдХреНрд╕рд░ рддреБрд▓рдирд╛ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдкрд░рдорд╛рдгреБ рдЯрд╛рдЗрдк IAom рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, if( atom.getSymbol().equals("H") ) рдирд┐рд╣рд┐рдд рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдпрдордп рдЬрдЧрд╣ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рдФрд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд┐рдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

7. рдПрдХ рдЕрд╕рд┐рдВрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

org.openscience.cdk.dict.EntryReact:
 public void setReactionMetadata(String metadata) { this.reactionInfo.add( metadata ); } 
рдлрд╛рдЗрдВрдбрдмрдЧреНрд╕ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдЬреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдЗрдиреНрдлреЛ рдлрд╝реАрд▓реНрдб рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ NullPointerException рдХреЛ рдлреЗрдВрдХ рджреЗрдЧреАред

8. рдПрдХ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрд▓рдд рд╢реБрд░реБрдЖрдд

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЧ org.openscience.cdk.qsar.AtomValenceTool:
 public class AtomValenceTool { private static Map<String,Integer> valencesTable = null; public static int getValence(IAtom atom) { if (valencesTable == null) { valencesTable = new HashMap<String, Integer>(); valencesTable.put("H", 1); valencesTable.put("He", 8); valencesTable.put("Ne", 8); ... } return valencesTable.get(atom.getSymbol()); } } 
рдЬрдм рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдВрднрд╡ рд╣реИ рдЬрдм рд╡реИрд▓реЗрдВрд╕рдЯреЗрдмрд▓ рдЕрдм рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдирд╣реАрдВ рднрд░рд╛ рд╣реИред рдлрд┐рд░ рдПрдХ рдзрд╛рдЧрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдкрд░рдорд╛рдгреБ рдХреЗ рд▓рд┐рдП NullPointerException рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛ред

9. рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди

рдпрджрд┐ рддрд░реНрдХ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдмрд░рд╛рдмрд░ () рд╡рд┐рдзрд┐ рдХреЛ рдЧрд▓рдд рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрд▓реЛрди () рдкрджреНрдзрддрд┐ рдХреЛ рдХрднреА рднреА рдЕрд╢рдХреНрдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдВрддрд┐рдо рд╢реНрд░реЗрдгреА рдореЗрдВ рдХреНрд▓реЛрди () рдкрджреНрдзрддрд┐ рдХреЛ рд╕реБрдкрд░.рдХреНрд▓реЛрди () рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рдЖрдк рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓реЛрди () рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛)ред рдЗрди рдЪреАрдЬреЛрдВ рд╕реЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЯрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

10. рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ

net.sf.cdk.tools.doclets.CDKIOOptionsTaglet.getClassName:
 String path = file.getPath().replaceAll(File.separator, "."); 
рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╡рд┐рдзрд┐ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓реЗрддреА рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, File.separator рдПрдХ рдмреИрдХрд╕реНрд▓реИрд╢ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдб PatternSyntaxException рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

11. рдкреИрд░реЗрдВрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рдПрдХ рдУрд╡рд░рд░рд╛рдЗрдб рд╡рд┐рдзрд┐, рдПрдХ uninitialized рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ

рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕реНрдерд┐рддрд┐ред org.openscience.cdk.debug.DebugAtomContainerред рдПрдХ рдХреНрд╖реЗрддреНрд░ рдШреЛрд╖рд┐рдд рд╣реИ
 ILoggingTool logger = LoggingToolFactory.createLoggingTool(DebugAtomContainer.class); 

рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ:
 public void addStereoElement(IStereoElement parity) { logger.debug("Adding stereo element: ", parity); super.addStereoElement(parity); } 
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд▓реЙрдЧрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рди рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ NullPointerException рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред

рдирд┐рд╖реНрдХрд░реНрд╖

рдФрд░ рднреА рдЧрд▓рддрд┐рдпрд╛рдБ рдереАрдВ, рд▓реЗрдХрд┐рди рдЪрд▓реЛ рд░реБрдХ рдЬрд╛рддреЗ рд╣реИрдВред рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реАрдбреАрдХреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдХрд╛рдлреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкрд╛рдИ рдЧрдИрдВ, рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмреЗрд╡рдХреВрдл рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рд╣рд░ рдХреЛрдИ рдРрд╕рд╛ рд╣реА рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрднреА рддрдХ рд╕реНрдереИрддрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ!

Source: https://habr.com/ru/post/In198938/


All Articles